java I/O流(二)字符流

java.io.Writer类,字符输出流,继承于java.lang.Object

Writer的实现类BufferedWriter,CharArrayWriter,FilterWriter,OutputStreamWriter,PipedWriter ,PrintWriter,StringWriter 

java.io.Reader类,字符输入流,继承于java.lang.Object

Reader的实现类BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader 

package com.part01;
import java.io.FileOutputStream;
/**
 * java.io.Writer  字符输出流
 * 我们操作的是字符,但是存在文件里后就变成字节,也就是说字符流对字符做了编码和解码
 */
public class Demo01 {

	public static void main(String[] args) throws IOException
	{
	   FileOutputStream fo=new FileOutputStream("d:\\iodemo.txt");
	   Writer wr=new OutputStreamWriter(fo);
	   String str="大家好吗?";
	   wr.write(str.toCharArray());//字符串转字符数组
	    //记得关流
       wr.close();
	   System.out.println("OK");
	}
}
package com.part01;
import java.io.FileInputStream;
public class Demo02 {
	public static void main(String[] args) throws IOException {
		FileInputStream fi=new FileInputStream("d:\\iodemo.txt");
		//Reader re=new InputStreamReader(fi);//Reader 没有getEncoding()方法。
		InputStreamReader re=new InputStreamReader(fi);
		System.out.println(re.getEncoding());//获得默认编码GBK
		char [] buffer=new char[10];   
		
		int len=re.read(buffer);
		re.close();
		System.out.println(Arrays.toString(buffer));
		System.out.println(new String(buffer));//用字符数组构建字符串
	}
}

 FileWriter 继承于OutputStreamWriter

 FileReader 继承于InputStreamReader

它们两个没有做方法的扩展,只是构方法比较好用,方便地构造Reader和Writer

package com.part01;
import java.io.FileWriter;
import java.io.IOException;
public class Demo03
{
	public static void main(String[] args) throws IOException 
	{
           FileWriter fw=new FileWriter("d:\\iodemo.txt");
           fw.write("大家好好好好啊");
           fw.close();
           System.out.println("-------");
	}
}

上面的都要用已存在字节流来构造。 

 BufferedWriter继承于Writer

 BufferedReader继承于Reader

package com.part01;
import java.io.BufferedWriter;

/**
 *  java.io.BufferedWriter extends Writer
 *  jvaa.io.BufferedReader extends Reader
 *  带缓存,可以写换行符,可以按行读,
 *  要用已存在的Reader和Writer构建
 */
public class Demo04 {
	public static void main(String[] args) throws IOException 
	{
	    FileWriter  fw=new FileWriter("d:\\iodemo.txt");
	    BufferedWriter  br=new BufferedWriter(fw);
	    
	    br.write("大家好");
	    br.newLine();
	    br.write("明天来");
	    br.newLine();
	    br.write("吃火锅");
	    
	    br.close();
	    System.out.println("OK");
	}
}
package com.part01;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Demo05 {
	public static void main(String[] args) throws IOException 
	{
		FileReader fi=new FileReader("d:\\iodemo.txt");
		BufferedReader br=new BufferedReader(fi);
		String str=null;
		while(null!=(str=br.readLine()))
		{
			System.out.println(str);
		}
   br.close();
	}
}

 打印出:(按行读)

大家好
明天来
吃火锅

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值