- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java9讲解
字节流和字符流 SequenceInputStream类 SequenceInputStream类可以将两个或几个输入流不露痕迹地接合在一起,生成一个长长的接合流,在读入数据时,它忽略前面几个输入流的结束符EOF,直到最后一个流的结束符EOF时,才完成流的输入 SeqTest.java 字节流和字符流 抽象类Reader和Writer定义了实现其他流类的关键方法。其中两个最重要的是read()和write(),它们分别进行字符数据的读和写。这些方法被派生流类重载。 Reader及Writer类和它们子类的方法,与InputStream及OutputStream类及它们子类的使用方法非常类似。 字符流主要是用来处理字符的。它们在读写流内数据时是以字符为单位。 字符流类由两个类层次结构定义。顶层有两个抽象类:Reader和Writer。这些抽象类处理统一编码的字符流。 字节流和字符流 InputStreamReader类和OutputStreamWriter类 在构造这两个类对应的流时,它们会自动进行转换,将平台缺省的编码集编码的字节转换为Unicode字符。对英语环境,其缺省的编码集一般为ISO8859-1。 BufferedReader类和BufferedWriter类 这两个类对应的流使用了缓冲,能大大提高输入输出的效率。这两个也是过滤器流,常用来对InputStreamReader和OutputStreamWriter进行处理。 字符流Reader类、Writer的子类: 字节流和字符流示例 示例: 实现对文件中关键字的查找,把包含有指定字符的行显示出来或写到文件中。 用FileReader类实现文件读入功能,BufferedReader类用于提高文件读入速度。与输入相似的输出类FileWriter类和BufferedWriter类。 程序用readLine()方法一次读入一行字符,读入的一行字符中不包括行结束符。程序用write()方法向文件中一次写出一字符串,方法newLine()写一个行结束符。 字节流和字符流示例 import java.io.*; public class Find { public static void main(String args[]) { BufferedReader bRead = null; BufferedWriter bWrite = null; String buffer; boolean outFile = false; int i = 0; if(args.length 2) { System.out.println(Use:java Find input String + [output]); System.exit(0); } try { FileReader fr = new FileReader(new File(args[0])); bRead = new BufferedReader(fr); }catch(IOException e) { System.out.println(Cannot find + args[0]); System.exit(-1); } 字节流和字符流示例 if(args.length == 3) { try { FileWriter fw = new FileWriter(new File(args[2])); bWrite = new BufferedWriter(fw); outFile = true; } catch (IOException e) { System.out.println(Cannot find + args[2]); System.exit(-1); } } try { buffer = bRead.readLine(); while(buffer != null) { if(buffer.indexOf(args[1]) != -1) { if(outFile) { bWrite.write(buffer);
文档评论(0)