Java程序设计应用开发教程 教案-单元6.1 文件读写操作_第1页
Java程序设计应用开发教程 教案-单元6.1 文件读写操作_第2页
Java程序设计应用开发教程 教案-单元6.1 文件读写操作_第3页
Java程序设计应用开发教程 教案-单元6.1 文件读写操作_第4页
Java程序设计应用开发教程 教案-单元6.1 文件读写操作_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教师备课纸课题单元6.1文件读写操作课型理实一体授课班级授课时数5教学目标了解输入与输出流的分类。理解File类的应用。掌握文件输入输出流。掌握字节流与字符流。会使用File类的方法。会使用缓冲输入/输出流。会使用字节流与字符流教学重点File类的应用。字节流与字符流。缓冲输入/输出流。教学难点File类的应用字节流与字符流能使用文件输入输出流读取写入数据,解决实际问题。学情分析教学效果教后记单元任务6.1使用模板读取成品数据任务描述:入库管理就是仓库管理员针对生产管理系统(MES)中的成品物料数据入库RFID自动出货管理系统的操作。成品数据以文件模板形式导出MES系统中的数据,此处的文件模板以文本文件为例,本单元任务就是将文件模板形式的数据写入RFID自动出货管理系统,如图6-1所示。在成品实物进入仓库时使用RFID读/写器读取LP号码信息,根据读取LP号码信息与文件模板中数据的LP号码信息判断是否一致,来确定该数据是否可以写入RFID自动出货管理系统。此处RFID读/写器读取LP号码信息功能可通过键盘来完成。图6-1使用文件模板读取成品数据相关知识输入输出流所谓流是同一台计算机或网络中不同计算机之间有序运动的数据序列。Java中数据输入输出是以使用流(Stream)的形式执行的,借助于输入输出类库java.io包中的类与接口实现的。输入流抽象类有两种:InputStream字节输入流和Reader字符输入流。输出流抽象类有两种:OutputStream字节输出流和Write字符输出流。2.File类File类是java.io包中用来操作文件的类,通过调用File类中的方法,可实现创建、删除、重命名文件等功能。File类的构造方法publicFile(Stringpath)publicFile(Filedir,Stringname)publicFile(Stringpath,Stringname)File类的构造方法publicbooleanisFile()publicbooleanisDirectory()publicbooleanmkdir()publicbooleanmkdirs()publicStringgetName()publicbooleanexists()在C盘新建一个文件夹,文件夹名为24061201刘菲,在其文件夹中再新建文件,文件名为source.txt,向其中写入李白的《静夜思》。//1.创建文件夹Filefdir=newFile("C:\\24061201刘菲");if(fdir.mkdir()){System.out.println("成功在C盘创建个人文件夹");}//2.创建一个文件FilesFile=newFile(fdir,"source.txt");if(sFile.createNewFile()){ System.out.println("成功在个人文件夹创建文件");}//3.向source.txt文件中写入李白的《静夜思》BufferedWriterbw=newBufferedWriter(newFileWriter(sFile));bw.write("床前明月光,\r\n疑是地上霜,\r\n举头望明月,\r\n低头思故乡。"); bw.flush(); bw.close();拓展:将source.txt的内容写入destination.txt。FilesFile=newFile("C:\\24061201刘菲","source.txt"); FiledFile=newFile(""C:\\24061201刘菲","destination.txt");//4.将source.txt的内容写入destination.txtBufferedReaderbr=newBufferedReader(newFileReader(sFile));bw=newBufferedWriter(newFileWriter(dFile));Strings=null;while((s=br.readLine())!=null){ bw.write(s); bw.newLine(); bw.flush();}从C:\JavaTest路径下读文件a.txt,并在控制台输出。publicclassFileTest{publicstaticvoidmain(String[]args){Filefile=newFile("C:/JavaTest/a.txt");try{BufferedReaderbr=newBufferedReader(newFileReader(file));inti=0;while((i=br.read())!=-1){System.out.println((char)i);}br.close();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}3.文件读/写操作(1)FileInputStream与FileOutputStream类FileInputStream类的构造方法publicFileInputStream(Filefile)publicFileInputStream(Stringname)FileOutputStream类的构造方法如下。publicFileOutputStream(Filefile)publicFileOutputStream(Filefile,booleanappend)publicFileOutputStream(Stringname):(2)FileReader类与FileWriter类FileReader类的构造方法publicFileReader(Filefile):publicFileReader(StringfileName):FileWriter类的构造方法如下。publicFileWriter(Filefile):publicFileWriter(StringfileName):publicFileWriter(StringfileName,booleanappend)publicFileOutputStream(Stringname,booleanappend)4.带缓存的输入/输出流(1)BufferInputStream与BufferOutputStream类BufferedInputStream构造方法:BufferedInputStream(InputStreamin)//创建一个带有32个字节的缓存流。BufferedInputStream(InputStreamin,int)//按指定的使用指定size大小创建缓存区。BufferedInputStream常用方法publicbooleanmarkSupport();//查看此流是否支持markpublicvoidmark(intreadLimit);//标记当前buf中读取下一个字节的下标publicintread();//读取buf中下一个字节。publicintread(byte[]b,intoff,intlen);//读取buf中下一个字节。BufferedOutputStream构造方法:BufferedOutputStream(OutputStreamout);//使用默认大小、底层字节输出流构造bos。默认缓冲大小是8192字节(8KB)。BufferedOutputStream(OutputStreamout,intsize);//使用指定大小、底层字节输出流构造bos。BufferedOutputStream常用方法publicvoidwrite(byteb);将一个字节写入到buf中。publicvoidwrite(byte[]b,intoff,intlen);将b的一部分写入buf中。(2)BufferedReader与BufferedWriter类BufferedReader构造方法:BufferedReaderbr=newBufferReader(Readerin);BufferedReader常用方法publicStringreadLine()读一行字符串,以回车符为结束。publicvoidnewLine()//写入一个行分隔符。BufferedWriter构造方法:BufferedWriter(Writerout,intsize)创建一个使用给定大小输出缓冲区的新缓冲字符输出流。BufferedWriter常用方法publicvoidwrite(charch);//写入单个字符。publicvoidwrite(char[]cbuf,intoff,intlen)//写入字符数据的某一部分。publicvoidwrite(Strings,intoff,intlen)//写入字符串的某一部分。publicvoidnewLine()//写入一个行分隔符。单元任务分析与实施(1)定义成品信息类Stock。(2)定义StockFromFile类,并在该类中定义一个静态方法,用于从文本文件中读取所有成品表信息,返回所有成品组成的对象数组。publicstaticArrayList<Stock>getStockFromFile(StringfilePath){File=newFile(filePath);ArrayList<Stock>stocks=newArrayList<Stock>();//创建ArrayList集合对象InputStreamin=null;InputStreamReaderreader=null;StringlineTxt=null;if(file.isFile()&&file.exists()){try{in=newFileInputStream(newFile(filePath));reader=newInputStreamReader(in,"utf-8");BufferedReaderbuffered=newBufferedReader(reader);while((lineTxt=buffered.readLine())!=null){String[]strArray=lineTxt.split("\\,");Stockstock=newStock();stock.setBatchNumber(strArray[0]);stock.setCode(strArray[1]);stock.setLPNumber(strArray[2]);stock.setQty(Integer.parseInt(strArray[3]));stock.setInStockTime(strArray[4]);stocks.add(stock);}in.close();}catch(IOExceptione){e.printStackTrace();}}returnstocks;}}(3)定义测试类MainClass,根据指定路径的文本文件,调用StockFromFile类的静态方法获取成品组成的对象数组。判断成品对象数组中的元素是否与通过键盘输入的LP号码匹配,确定该数据可以入库。publicstaticvoidmain(String[]args)throwsIOException{StringFilePath="resource/MESStock.txt";ArrayList<Stock>inStocks=newArrayList<Stock>();Scannerinput=newScanner(System.in);ArrayList<Stock>stockinfo=StockFromFile.getStockFromFile(FilePath);System.out.println("导入MES成品表信息如下:");for(Stocks:stockinfo){System.out.println(s);}//扫描成品货物包装的RFID标签号码System.out.println("请输入扫描成品货物包装的RFID标签号码");StringinLPnumber=input.next();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论