您好,欢迎访问三七文档
东南博职业技术学院课时授课计划编号:Win001班级班班班日期第10教学周课题输入与输出目的要求要求学生掌握输入与输出字符流,学会处理键盘输入、文件读取、文件输出等。重点字符流与字节流的区别,及用法难点文件的读取与写入教法讲授动手操作教具教材及课外资料无课外资料课时分配组织教学0复习旧课上机练习讲授新课2小结巩固1布置作业上机练习其他1教学内容及进程一、字节流处理类1.InputStream类2.OutputStream类;二、字符流处理类1.Reader类2.Writer类三、文件类(File类)课外作业1.写程序,将一个文件中的内容读出,写入到另一个文件中。课后作业第10章输入与输出10.1输入输出类库Java的输入输出是以流(stream)的方式来处理,流是在计算机的输入、输出操作中流动的数据序列。流式输入、输出的特点是数据的获取和发送均沿数据序列顺序进行。数据序列中既可以是未经加工的原始二进制数据,也可以是按一定编码处理后符合某种格式规定的特定数据,如字符数据,所以Java中的流有位流(字节流)和字符流之分。输入流:从键盘、磁盘文件流向程序的数据;输出流:从程序流向显示器、打印机和磁盘文件的数据。10.1.2字节流处理类字节流处理类提供了直接读取和写入二进制数据,但没有经过编码处理。因此,能正常读写英文或数字,但读写中文时就会出现乱码。字符流处理类对读取和写入的字节流进行了编码,因此读写时不会出现乱码。10.1.2InputSteam类输入或读取字节流的类说明如下:InputStream类:是抽象类,其子类可完成最基本的从输入流读取数据的功能;FileInputStream类:以字节流方式,读取本地文件;FilterInputStream类:是抽象类,有2个子类;DataInputStream类:从字节流中读取数据时,具备格式转换功能;(如能一次读一个双精度数)BufferedInputStream类:具缓冲功能的输入字节流。InputStream类及其子类的主要方法有:(1)publicintread()方法:以二进制的方式读入,但不能分解、重组和理解数据,使之变换、恢复到原来的有意义状态。(2)publiclongskip(longn)方法:将指针从当前位置向后跳动n个字节;(3)publicvoidmark()方法:在指针位置做一个标记;(4)publicvoidreset()方法:将指针移动到标记位置;(5)publicvoidclose()方法:当输入流使用完毕后,可以调用close()方法将其关闭。下例为以字节流读取“D:\samples\testInput.txt”文件的内容并打印出来,数字和英文能正常显示,但中文会是乱码。FileInputStreamfin=newFileInputStream(D:\\samples\\testInput.txt);System.out.println(文件中信息为:);intch=fin.read();while(ch!=-1){System.out.print((char)ch);InputStreamFileInputStreamFilterInputStreamDataInputStreamBufferedInputStreamch=fin.read();}fin.close();10.1.2OutputStream类输出或写入字节流的类说明如下:FileOutputStream类:用来对本地文件进行写入操作;FilterOutputStream类:是抽象类,有2个子类;DataOutputStream类:向流中写入数据时,可以实现对二进制字节数据的编码功能;(如能一次写入一个双精度数)BufferedOutputStream类:具缓冲功能的输出字节流。PrintStream类:将任意类型数据输出为字符串形式。OutputStream类及其子类的主要方法有:(1)publicintwrite(intb)方法:以二进制的方式向输出流写入数据,只能逐字节地输出数据。(2)publiclongflush()方法:强制缓冲区,并将缓冲区中的现有数据写入外设;(3)publicvoidclose()方法:关闭输出流,断开Java程序与外设数据源的连接,释放资源。下例为输入字符串,以“#”号结束,将字符串以字节流的方式写入到“D:\samples\testOutput.txt”文件中。FileOutputStreamfout=newFileOutputStream(“D:\\samples\\testOutput.txt”);System.out.print(输入任一字符串,以#结束);ch=(char)System.in.read();//读从键盘输入的一个字节while(ch!='#'){fout.write(ch);//如果加fout.write(49),写入到文件中的汉字就会是乱码ch=(char)System.in.read();//读下一字节}fout.close();10.1.2Reader类读入字符流的类说明如下:Reader类:以字符方式从流中读入数据;BufferedReader类:具备缓冲功能的字符输入类;InputStreamReader类:是字节输入流和字符输入流之间的桥梁,它从字节流中读入数据,然OutputStreamFileOutputStreamFilterOutputStreamDataOutputStreamBufferedOutputStreamPrintStreamReaderBufferedReaderInputStreamReaderFileReader后根据字符编码规则将它们转换成字符。FileReader类:用于从文件中读入字符流。Reader类及其子类的主要方法有:(1)publicintread()方法:逐字符地读入数据。(2)publiclongskip(longn)方法:将指针从当前位置向后跳动n个字节;(3)publicvoidmark()方法:在指针位置做一个标记;(4)publicvoidreset()方法:将指针移动到标记位置;(5)publicvoidclose()方法:当输入流使用完毕后,可以调用close()方法将其关闭。(6)BufferedReader类的publicStringreadLine()方法:能每次读入一段,直到返回null表示读完。下例为以FileReader对象来读取文件“D:\samples\testFileReader.txt”中内容,因为是以字符流形式,所以不会出现乱码。FileReaderfin=newFileReader(“D:\\samples\\testFileReader.txt”);System.out.println(文件中信息为:);intch=fin.read();while(ch!=-1){System.out.print((char)ch);ch=fin.read();}fin.close();下例为以FileReader对象为参数建立BufferedReader对象,来读取文件“D:\samples\testFileReader.txt”中内容,调用后者的readLine()方法一次读入一段。FileReaderfin=newFileReader(“D:\\samples\\testFileReader.txt”);BufferedReaderbr=newBufferedReader(fin);System.out.println(文件中信息为:);Stringstr=br.readLine();while(str!=null){System.out.println(str);str=br.readLine();}fin.close();10.1.2Writer类写入字符流的类说明如下:Writer类:以字符方式向输出流中写入数据;PrinterWriter类:提供流的格式化输出功能;WriterPrintWriterOutputStreamWriterFileWriterBufferedWriterBufferedWriter类:对字符输出流提供了缓冲功能。OutputStreamWriter类:是字符输出流和字节输出流之间的桥梁,它从字符流读取数据,然后根据字符编码规则将它们转换成字节。FileWriter类:用来向文件中写入字符流。Reader类及其子类的主要方法有:(1)publicvoidwrite(intc)方法:将参数c对应的字符写入输出流。(2)publicvoidwriter(Stringstr)方法:将字符串参数str写入输出流。(3)publiclongflush()方法:强制缓冲区,并将缓冲区中的现有数据写入外设;(4)publicvoidclose()方法:关闭输出流,断开Java程序与外设数据源的连接,释放资源。下例以文件“D:\samples\testFileWriter.txt”新建File对象file1,再以file1作参数新建FileWriter对象fw,最后以fw作参数新建BufferedWriter对象,实现向文件中写入文字。Filefile1=newFile(“D:\\samples\\testFileWriter.txt”);FileWriterfw=newFileWriter(file1);BufferedWriterbw=newBufferedWriter(fw);bw.write(中人办民);bw.newLine();//换行bw.write(中人abc办民);bw.close();fw.close();10.1.2File类File类位于java.io包中,它不是流类,不负责数据的输入输出,而专门用来管理磁盘文件和目录。构造方法:File(Stringpath):以参数path指定所建对象对应的磁盘文件名或目录路径名。例:Filef1=newFile(“D:\\test\\file1.txt”);File(Stringpath,Stringname):path表示文件或目录的路径,name表示文件或目录名。例Filef2=newFile(“D:\\test”,“file2.txt”);File(Filedir,Stringname):path表示目录对象,naem表示文件或目录名。例FilefileDir=newFile(“D:\\test”);Filef3=newFile(fileDir,“file3.txt”);File类的方法:(1)publicStringgetName():返回文件或目录名;(2)publicStringgetPath():返回文件或目录路径;(3)publicbooleanexists():文件或目录是否存在;(4)publiclonglength():返回文件的字节数;(5)publicbooleancanRead():是否是可读文件。(6)publicbooleancanWrite():是否是可写文件。(7)publicbooleanequals(Filefile):比较该文件或目录与file是否相同,相同则返回true。(8)publicbooleanisFile():判断是否是文件。(9)publicbooleanisDirectory():判断是否是目录。(10)publicbooleanrenameTo(Filefile):将该文件名改为file所表示的文件名。(11)publicvoiddelete():删除文件。薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅
本文标题:第10章输入与输出
链接地址:https://www.777doc.com/doc-2241822 .html