您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 自考Java程序设计一(第9章输入输出流)
第9章输入和输出流本章重点Ø字节流的输入和输出Ø字符流的输入和输出Ø缓冲式的输入和输出Ø随机访问Ø文件对话框的方法更多优质自考资料尽在百度贴吧自考乐园俱乐部()欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........2文件Ø什么是文件?文件可认为是相关记录或放在一起的数据的集合Ø文件一般存储在哪里?ØJAVA程序一般通过什么去访问文件属性?JAVAAPI:java.io.File类3文件File类物理文件或目录构造文件对象操作文件或目录的属性(路径、权限、日期和时间等)4文件importjava.io.File;……Filefile=newFile(args[0]);System.out.println(文件或目录是否存在:+file.exists());System.out.println(是文件吗:+file.isFile());System.out.println(是目录吗:+file.isDirectory());System.out.println(名称:+file.getName());System.out.println(路径:+file.getPath());System.out.println(绝对路径:+file.getAbsolutePath());System.out.println(最后修改时间:+file.lastModified());System.out.println(“文件大小:”+file.length()+“字节”);……5流•流是指一连串流动的字符,是以先进先出方式发送信息的通道InputStreamOutputStream来自数据源的数据流流向目的地的数据流AECDBF61.输入流通过打开一个到数据源(文件、内存或网络端口上的数据)的输入流,程序可以从数据源上顺序读取数据。流72.输出流通过打开一个到目标的输出流,程序可以向外部目标顺序写数据。流8流ØJava流的分类Ø字符流类(CharacterStreams)字符流类用于向字符流读写16位二进制字符。ReaderWriterØ字节流类(ByteStreams)字节流类用于向字节流读写8位二进制的字节。一般地,字节流类主要用于读写诸如图象或声音等的二进制数据.InputStreamOutputStream9java.io中的基本流类:说明:它们是抽象类,不能直接创建对象。流9101.InputStream方法ØThethreebasicreadmethods:intread()intread(byte[]buffer)intread(byte[]buffer,intoffset,intlength)ØTheothermethods:voidclose()intavailable()skip(longn)112.OutputStream方法ØThethreebasicwritemethods:voidwrite(intc)voidwrite(byte[]buffer)voidwrite(byte[]buffer,intoffset,intlength)ØTheothermethods:voidclose()voidflush()123.ReaderMethodsØThethreebasicreadmethods:intread()intread(char[]cbuf)intread(char[]cbuf,intoffset,intlength)ØTheothermethods:voidclose()booleanready()skip(longn)134.Writer方法ØThethreebasicwritemethods:voidwrite(intc)voidwrite(char[]cbuf)voidwrite(char[]cbuf,intoffset,intlength)voidwrite(Stringstring)voidwrite(Stringstring,intoffset,intlength)ØTheothermethods:voidclose()voidflush()14文件的读写Ø文本文件的读写Ø用FileInputStream读文本文件Ø用FileOutputStream写文本文件Ø用BufferedReader读文本文件Ø用BufferedWriter写文本文件Ø二进制文件的读写15用FileInputStream读文本文件Ø引入相关的类importjava.io.IOException;importjava.io.InputStream;importjava.io.FileInputStream;Ø构造一个文件输入流对象InputStreamfileobject=newFileInputStream(“text.txt”);16用FileInputStream读文本文件Ø利用文件输入流类的方法读取文本文件的数据fileobject.available();//可读取的字节数fileobject.read();//读取文件的数据Ø关闭文件输入流对象fileobject.close();17用FileInputStream读文本文件publicstaticvoidmain(String[]args)throwsIOException{intsize;InputStreamfileobject=newFileInputStream(args[0]);System.out.println(“可读取的字节数:+(size=fileobject.available()));char[]text=newchar[200];for(intcount=0;countsize;count++){text[count]=((char)fileobject.read());System.out.print(text[count]);}System.out.println();fileobject.close();}使用read()方法一次读取一个字符,然后将字符存储在字符数组中并显示字符创建一个FileInputStream对象使用available()方法确定文件的大小18用FileOutputStream写文本文件Ø引入相关的类importjava.io.IOException;importjava.io.OutputStream;importjava.io.FileOutputStream;Ø构造一个文件输出流对象OutputStreamfos=newFileOutputStream(Text.txt);19用FileOutputStream写文本文件Ø利用文件输出流的方法写文本文件Stringstr=好好学习Java;byte[]words=str.getBytes();fos.write(words,0,words.length);Ø关闭文件输出流fos.close();20用FileOutputStream写文本文件publicstaticvoidmain(String[]args){try{Stringstr=好好学习Java;byte[]words=str.getBytes();OutputStreamfos=newFileOutputStream(Text.txt);fos.write(words,0,words.length);System.out.println(Text文件已更新!);fos.close();}catch(IOExceptionobj){System.out.println(创建文件时出错!);}}使用write()方法将数据写入文件21缓冲式输入输出Ø当程序处理的文件按行组织,并且行不是定长时,用前面所述的流类实现很不方便.这时可采用缓冲式输入输出方式.Ø缓冲式输入:对于程序的输入请求,系统一次性输入足够多的内容放在内存缓冲区中,供程序以后的输入请求使用,待缓冲区的内容用完,再一次性输入足够多的数据.Ø缓冲式输出:对于程序的输出请求,系统先将内容暂存于缓冲区,待缓冲区满或输出结束,才将暂存与缓冲区中的内容输出到流的目的地.22用BufferedReader读文本文件•引入相关的类importjava.io.FileReader;importjava.io.BufferedReader;importjava.io.IOException;•构造一个BufferedReader对象FileReaderfr=newFileReader(mytest.txt);BufferedReaderbr=newBufferedReader(fr);23用BufferedReader读文本文件Ø利用BufferedReader的方法读取文本文件的数据br.readLine();//读取一行数据,返回字符串Ø关闭相关的流对象br.close();fr.close();;24用BufferedReader读文本文件演示:示例4演示:示例4/**创建一个FileReader对象.*/FileReaderfr=newFileReader(mytest.txt);/**创建一个BufferedReader对象.*/BufferedReaderbr=newBufferedReader(fr);/**读取一行数据.*/Stringline=br.readLine();while(line!=null){System.out.println(line);line=br.readLine();}/**流的关闭.*/br.close();fr.close();创建一个FileReader对象创建一个BufferedReader对象25用BufferedWriter写文本文件Ø引入相关的类importjava.io.FileWriter;importjava.io.BufferedWriter;importjava.io.IOException;Ø构造一个BufferedWriter对象FileWriterfw=newFileWriter(mytest.txt);BufferedWriterbw=newBufferedWriter(fw);26用BufferedWriter写文本文件Ø利用BufferedWriter的方法写文本文件bw.write(“hello”);Ø相关流对象的清空和关闭bw.flush();fw.close();27用BufferedWriter写文本文件/**创建一个FileWriter对象*/FileWriterfw=newFileWriter(mytest.txt);/**创建一个BufferedWriter对象*/BufferedWriterbw=newBufferedWriter(fw);bw.write(大家好!);bw.write(我正在学习BufferedWriter。);bw.newLine();bw.write(请多多指教!);bw.newLine();bw.write(email:study@jb-aptech.com.cn);bw.flush();fw.close();创建一个BufferedWriter对象创建一个FileWriter对象28用DataInputStream读二进制文件Ø引入相关的类importjava.io.FileInputStream;importjava.io.DataInputStream;Ø构造一个数据输入流对象FileInputStreamfis=newFileInputStream(“HelloWorld.class”);DataInputStreamdis=newDataInputStream(fis);Ø利用数据输入流类的方法读取二进制文件的数据dis.readInt();//读取出来的是整数dis.readByte();//读取出来的数据是Byte类型
本文标题:自考Java程序设计一(第9章输入输出流)
链接地址:https://www.777doc.com/doc-5947781 .html