版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育馆临时用电安全操作培训
- 建筑消防工程施工安全管控培训
- 食品生产企业应急救援预案
- 2026年人教版新九年级英语上册 第04讲 Unit 4 Our Memory(暑假预习讲义)
- 乡镇卫生院基本公共卫生服务项目培训考试试题及答案
- 临床安全输血原则试题及答案2026版
- 工厂高温烫伤应急演练脚本
- (2026)健康管理师三级考试题库及参考答案
- 燃气凝水缸泄漏应急预案演练脚本
- 热处理工程师考试试卷及答案
- 2026广东珠海市斗门区招聘公办中小学教师134人(编制)考试参考试题及答案解析
- 燃气管道试压验收方案
- 2026零碳园区绿电直连系统规划建设方案
- 市政设施养护维修技术规范
- GB/T 47067-2026塑料模塑件公差和验收条件
- 新疆建设工程消防设计审查、验收常见问题技术解析(2024年)
- 2026年国家公务员考试题库500道附答案(综合卷)
- 财税培训课件 接收虚开
- 资料室图纸档案管理制度
- 《DLT 1231-2018电力系统稳定器整定试验导则》专题研究报告深度
- 2025元时空智能科技多岗位招聘15人笔试历年难易错考点试卷带答案解析2套试卷
评论
0/150
提交评论