InputStreamReader 和 OutStreamWriter 类 字符流

InputStreamReader类:是字节流与字符流的桥梁,它读取字节并为其解码为使用指定的字符编码的字符集的字符。

OutStreamWritetr 类:是字符流到字节流的桥梁,它读取字符并为其解码为字节。


构造方法:

InputStreamReader:

 

public InputStreamReader(InputStream in)

这将创建一个使用默认字符集的输入流。

public InputStreamReader(InputStream in, String charsetName)

这将创建一个使用指定的字符集的输入流。

 public InputStreamReader(InputStream in, Charset cs)

这将创建一个使用Charset类字符编码对象的输入流。

public InputStreamReader(InputStream in, CharsetDecoder dec)

这将创建一个字符集的输入流,传入CharsetDecoder对象自动识别字符集

备注: nio包 关于 Charset关于CharsetDecoder


OutStreamWriter:

public OutputStreamWriter(OutputStream out, String charsetName)

这将创建一个使用指定的字符集的输出流。

 public OutputStreamWriter(OutputStream out) 

这将创建一个使用默认字符集的输出流。

public OutputStreamWriter(OutputStream out, Charset cs)

这将创建一个使用Charset类字符编码对象的输出流

 public OutputStreamWriter(OutputStream out, CharsetEncoder enc) 

这将创建一个字符集的输出流,传入CharsetDecoder对象自动识别字符集

InputStreamReader类方法:

 public String getEncoding() 

此方法返回正在使用此流的字符编码​​的名称。

 public int read()

此方法读取单个字符。

public int read(char cbuf[], int offset, int length)

此方法读取字符到一个数组中的一部分。

public boolean ready()

此方法通知此流是否已准备好被读取。

public void close()

此方法关闭流。


OutStreamWriter:

public String getEncoding()

此方法返回正在使用此流的字符编码​​的名称。

void flushBuffer()

将输出缓冲区刷新到基础字节流,而不刷新。

public void write(int c) 

此方法写单个字符。

public void write(char cbuf[], int off, int len)

此方法写一个数组中的一部分。

public void write(String str, int off, int len) 

此方法写一个字符串中的一部分。

public void flush()

清空缓冲区

public void close()

关闭流

Copy:

		InputStreamReader isr = new InputStreamReader(new FileInputStream("C:\\Users\\Mr.wang\\Desktop\\单词\\AccessTest\\Access.txt"));
		OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("C:\\Users\\Mr.wang\\Desktop\\单词\\AccessTest\\Access1.txt"));
		
		int num = 0;
		
		/*int a ;
		while((a=isr.read()) != -1) {
			osr.write(a);
			num++;
		}*/
		System.out.println(isr.getEncoding());
		
		char[] cbuf= new char[1024*20];
		
		while((isr.read(cbuf)) != -1) {
			osr.write(cbuf);
			num++;
		}
		
		osr.close();
		isr.close();
		System.out.println("循环次数" + num);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值