码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-12-31 12:56:23      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:dwr   子类   abc   层次结构   amt   java编程   back   sep   inline   

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(字符流)

标签:dwr   子类   abc   层次结构   amt   java编程   back   sep   inline   

原文地址:https://www.cnblogs.com/zhuweiheng/p/8157264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!