Java I/O---Reader & Writer(字符流)

Posted zhuweiheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java I/O---Reader & Writer(字符流)相关的知识,希望对你有一定的参考价值。

1.Reader & Writer

       当我们初次看见ReaderWriter类时,可能会以为这是两个用来替代InputStreamOutputStreamt的类,但实际上并非如此。

       尽管一些原始的“流”类库不再被使用(如果使用它们,则会收到编译器的警告信息),但是InputStream和OutputStreamt在以   面向字节形式的I/O中仍可以提供极有价值的功能,Reader和Writer提供兼容Unicode与面向字符的I/O功能。

       有时我们必须把来自于 “字节” 层次结构中的类和 “字符 ” 层次结构中的类结合起来使用(实现字节和字符的转化)。 为了实现这个目的,要用到 “适配器” ( adapter )类: lnputStreamReader(子类FileReader)可以把 InputStream转换为Reader(字节转化为字符),而         OutputStreamWriter(子类FileWriter)可以把OutputStream转换Writer(字符转化为字节)。

       Java I/O---字符与字节转换流---FileReader&FileWriter

2. BufferedReader & BufferedWriter

      两个类实现字符流缓冲

 

技术分享图片技术分享图片
  1 public class CharStreamBufferDemo {
  2 
  3 	/**
  4 	 * @param args
  5 	 * @throws IOException
  6 	 */
  7 	public static void main(String[] args) throws IOException {
  8 
  9 		/*
 10 		 * 演示字符流的缓冲区。
 11 		 * BufferedReader
 12 		 * BufferedWriter
 13 		 */
 14 //		writeTextByBuffered();
 15 		readTextBuffered();
 16 
 17 //		读取键盘录入专业。Scanner=流+正则表达式。方法都是按照某种规则在读取数据。
 18 //		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in))
 19 //		bufr.readLine();
 20 	}
 21 
 22 	public static void readTextBuffered() throws IOException {
 23 
 24 		FileReader fr = new FileReader("tempfile\\\\bufw.txt");//将字节转化为字符
 25 
 26 		BufferedReader bufr = new BufferedReader(fr);
 27 
 28 		String line = null;
 29 		while((line=bufr.readLine())!=null){
 30 
 31 			System.out.println(line);
 32 
 33 		}
 34 
 35 		/*String line1 = bufr.readLine();
 36 		System.out.println(line1);
 37 		String line2 = bufr.readLine();
 38 		System.out.println(line2);
 39 		String line3 = bufr.readLine();
 40 		System.out.println(line3);
 41 		String line4 = bufr.readLine();
 42 		System.out.println(line4);
 43 		String line5 = bufr.readLine();
 44 		System.out.println(line5);*/
 45 
 46 		bufr.close();
 47 
 48 	}
 49 
 50 	public static void writeTextByBuffered() throws IOException {
 51 
 52 		//1,明确目的。
 53 		FileWriter fw = new FileWriter("tempfile\\\\bufw.txt");//将字符转为字节
 54 
 55 		//2,创建缓冲区对象。明确要缓冲的流对象。
 56 		BufferedWriter bufw = new BufferedWriter(fw);
 57 
 58 		for(int x=1; x<=4; x++){
 59 
 60 			bufw.write(x+"abc");
 61 			bufw.newLine();
 62 			bufw.flush();
 63 		}
 64 
 65 //		bufw.write("abc");
 66 //		bufw.newLine();//System.getProperty("line.separator");
 67 //		bufw.write("hello");
 68 		bufw.close();
 69 
 70 	}
 71 
 72 }
 73 

2017-12-31

内容来自java编程思想的传智播客课程

以上是关于Java I/O---Reader & Writer(字符流)的主要内容,如果未能解决你的问题,请参考以下文章

Java读取本地文件(输入流)

Java的URL来下载网页源码

华为OD机试 - 过滤组合字符串(Java & JS & Python)

sh [W&W] svnperms示例配置

数据仓库直播回放&PPT

Json, Java, Parsing(如何只获取json的一部分