- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA_7-输入输出
输入/输出 本章内容 FileReader类与FileWriter类 BufferedReader类与BufferedWriter类 DataInputStream类与DataOutputStream类 ObjectInputStream类与ObjectOutputStream类 File类 RandomAccessFile类 序列化与克隆 I/O流的基本原理与分类 流:连接到文件的“管道”,分为输入流和输出流。Java应用程序使用输入流对象和输出流对象来完成数据的读写。 I/O流分类 1 根据数据的流动方向分为输入流与输出流 2 根据流处理的数据类型可分为字节流【二进制数据,声音图像等】与字符流【文本数据】。 节点流与处理流 根据流的功能层次分为节点流(底层流)与过滤流(上层流) 节点流一般用于直接从指定的位置进行读/写操作,例如磁盘文件,内存区域,网络连接等。 过滤流(也称处理流)用于对其他输入/输出流进行封装,是面向用户的。 在实际应用中,通常将节点流与过滤流结合起来使用。 节点流 下表中所有的字符流都派生自Reader或Writer类,字节流都派生自InputStream或OutputStream 处理流 File类 1 File类是同文件或者目录相关的一个类。 File对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。 2 File类的构造函数: 文件的属性 File举例 File类 3创建文件、创建目录 文件与目录创建举例 4 列出目录中的文件 列举目录下的文件举例 举例 文件字节输入流 举例 文件字节输出流 举例 文件字符输入、输出流 文件字符输入、输出流 缓存流:BufferedReader类与BufferedWriter类 缓冲流 6、随机流 7、数组流 9、对象流 10、序列化与对象克隆 对象序列化 当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量。 如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被保存。 如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException。我们可以将这个引用用关键词transient标记,那么对象仍然可以序列化。 由英语句子构成的文件english.txt(每句占一行): The arrow missed the target. They rejected the union demand. Where does this road go to? 例子7 按行读取english.txt ,并在该行的后面尾加上该英语句子中含有的单词数目,然后再将该行写入到一个名字为englishCount.txt的文件中。程序运行效果如图。 import java.io.*; import java.util.*; public class Example10_7 { public static void main(String args[]) { File fRead = new File(english.txt); File fWrite = new File(englishCount.txt); try{ Writer out = new FileWriter(fWrite); BufferedWriter bufferWrite = new BufferedWriter(out); Reader in = new FileReader(fRead); BufferedReader bufferRead =new BufferedReader(in); String str = null; while((str=bufferRead.readLine())!=null) { StringTokenizer fenxi = new StringTokenizer(str); int count=fenxi.countTokens(); str = str+ 句子中单词个数:+count; bufferWrite.write(str); bufferWrite.newLine(); } buffer
文档评论(0)