第9章输入输出流.ppt_第1页
第9章输入输出流.ppt_第2页
第9章输入输出流.ppt_第3页
第9章输入输出流.ppt_第4页
第9章输入输出流.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、第9章 输入和输出流,本章重点 字节流的输入和输出 字符流的输入和输出 缓冲式的输入和输出 随机访问 文件对话框的方法 更多优质自考资料尽在百度贴吧自考乐园俱乐部(,2,文件,什么是文件? 文件可认为是相关记录或放在一起的数据的集合 文件一般存储在哪里? JAVA程序一般通过什么去访问文件属性? JAVA API :java.io.File 类,3,文件,4,文件,import java.io.File; File file = new File(args0); System.out.println(文件或目录是否存在: + file.exists(); System.out.println(

2、是文件吗: + 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()+ “

3、字节”); ,5,流,流是指一连串流动的字符,是以先进先出方式发送信息的通道,InputStream,OutputStream,来自数据源的数据流,流向目的地的数据流,6,1. 输入流 通过打开一个到数据源(文件、内存或网络端口上的数据)的输入流,程序可以从数据源上顺序读取数据。,流,7,2. 输出流 通过打开一个到目标的输出流,程序可以向外部目标顺序写数据。,流,8,流,Java流的分类 字符流类(Character Streams) 字符流类用于向字符流读写16位二进制字符。 Reader Writer 字节流类(Byte Streams) 字节流类用于向字节流读写8位二进制的字节。一般地

4、,字节流类主要用于读写诸如图象或声音等的二进制数据. InputStream OutputStream,9,java.io中的基本流类: 说明:它们是抽象类,不能直接创建对象。,流,9,10,1. InputStream 方法 The three basic read methods: int read() int read( byte buffer) int read( byte buffer, int offset, int length) The other methods: void close() int available() skip( long n),11,2. OutputS

5、tream 方法 The three basic write methods: void write( int c) void write( byte buffer) void write( byte buffer, int offset, int length) The other methods: void close() void flush(),12,3. Reader Methods The three basic read methods: int read() int read( char cbuf) int read( char cbuf, int offset, int le

6、ngth) The other methods: void close() boolean ready() skip( long n),13,4. Writer 方法 The three basic write methods: void write( int c) void write( char cbuf) void write( char cbuf, int offset, int length) void write( String string) void write( String string, int offset, int length) The other methods:

7、 void close() void flush(),14,文件的读写,文本文件的读写 用FileInputStream读文本文件 用FileOutputStream写文本文件 用BufferedReader读文本文件 用BufferedWriter写文本文件 二进制文件的读写,15,用FileInputStream 读文本文件,引入相关的类 import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream; 构造一个文件输入流对象 InputStream fileobject = ne

8、w FileInputStream(“text.txt”);,16,用FileInputStream 读文本文件,利用文件输入流类的方法读取文本文件的数据 fileobject.available(); /可读取的字节数 fileobject.read(); /读取文件的数据 关闭文件输入流对象 fileobject.close();,17,用FileInputStream 读文本文件,public static void main(String args) throws IOException int size; InputStream fileobject = new FileInputS

9、tream(args0 ); System.out.println(“可读取的字节数: + (size = fileobject.available(); char text = new char200 ; for (int count = 0; count size; count+) textcount = (char) fileobject.read(); System.out.print(textcount); System.out.println(); fileobject.close(); ,使用 read( ) 方法一次读取一个字符,然后将字符存储在字符数组中并显示字符,使用 av

10、ailable( ) 方法确定文件的大小,18,用FileOutputStream 写文本文件,引入相关的类 import java.io.IOException; import java.io.OutputStream; import java.io.FileOutputStream; 构造一个文件输出流对象 OutputStream fos = new FileOutputStream(Text.txt);,19,用FileOutputStream 写文本文件,利用文件输出流的方法写文本文件 String str =好好学习Java; byte words = str.getBytes()

11、; fos.write(words, 0, words.length); 关闭文件输出流 fos.close();,20,用FileOutputStream 写文本文件,public static void main(String args) try String str =好好学习Java; byte words = str.getBytes(); OutputStream fos = new FileOutputStream(Text.txt); fos.write(words, 0, words.length); System.out.println(Text文件已更新!); fos.c

12、lose(); catch (IOException obj) System.out.println(创建文件时出错!); ,使用 write( ) 方法将数据写入文件,21,缓冲式输入输出,当程序处理的文件按行组织,并且行不是定长时,用前面所述的流类实现很不方便.这时可采用缓冲式输入输出方式. 缓冲式输入:对于程序的输入请求,系统一次性输入足够多的内容放在内存缓冲区中,供程序以后的输入请求使用,待缓冲区的内容用完,再一次性输入足够多的数据. 缓冲式输出:对于程序的输出请求,系统先将内容暂存于缓冲区,待缓冲区满或输出结束,才将暂存与缓冲区中的内容输出到流的目的地.,22,用BufferedRe

13、ader 读文本文件,引入相关的类 import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException; 构造一个BufferedReader对象 FileReader fr=new FileReader(mytest.txt); BufferedReader br=new BufferedReader(fr);,23,用BufferedReader 读文本文件,利用BufferedReader的方法读取文本文件的数据 br.readLine(); /读取一行数据,返回字符串 关闭相关的流对象

14、 br.close(); fr.close();,24,用BufferedReader 读文本文件,演示:示例 4,/*创建一个FileReader对象.*/ FileReader fr=new FileReader(mytest.txt); /*创建一个BufferedReader 对象.*/ BufferedReader br=new BufferedReader(fr); /*读取一行数据.*/ String line=br.readLine(); while(line!=null) System.out.println(line); line=br.readLine(); /*流的关闭

15、.*/ br.close(); fr.close();,创建一个 FileReader 对象,创建一个 BufferedReader对象,25,用BufferedWriter 写文本文件,引入相关的类 import java.io.FileWriter ; import java.io.BufferedWriter ; import java.io.IOException; 构造一个BufferedWriter对象 FileWriter fw=new FileWriter(mytest.txt); BufferedWriter bw=new BufferedWriter(fw);,26,用Bu

16、fferedWriter 写文本文件,利用BufferedWriter的方法写文本文件 bw.write (“hello”); 相关流对象的清空和关闭 bw.flush(); fw.close();,27,用BufferedWriter 写文本文件,/*创建一个FileWriter 对象*/ FileWriter fw=new FileWriter(mytest.txt); /*创建一个BufferedWriter 对象*/ BufferedWriter bw=new BufferedWriter(fw); bw.write(大家好!); bw.write(我正在学习BufferedWrite

17、r。); bw.newLine(); bw.write(请多多指教!); bw.newLine(); bw.write(email: studyjb-); bw.flush(); fw.close();,创建一个 BufferedWriter对象,创建一个 FileWriter 对象,28,用DataInputStream 读二进制文件,引入相关的类 import java.io.FileInputStream; import java.io.DataInputStream; 构造一个数据输入流对象 FileInputStream fis = new FileInputStream(“Hell

18、oWorld.class”); DataInputStream dis = new DataInputStream(fis); 利用数据输入流类的方法读取二进制文件的数据 dis.readInt(); / 读取出来的是整数 dis.readByte(); / 读取出来的数据是Byte类型 数据输入流的关闭 dis.close (); /关闭数据输入流,29,用DataOutputStream 写二进制文件,引入相关的类 import java.io. FileOutputStream; import java.io. DataOutputStream; 构造一个数据输出流对象 FileOutp

19、utStream outFile = new FileOutputStream(temp.class); DataOutputStream out = new DataOutputStream(outFile); 利用文件输出流类的方法写二进制文件 out.writeByte(1); /把数据写入二进制文件 数据输出流的关闭 out.close();,30,读写二进制文件演示, FileInputStream fis = new FileInputStream(ReadAndWriteBinaryFile.class); DataInputStream dis = new DataInputStream(fis); FileOutputStream outFile = new

温馨提示

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

评论

0/150

提交评论