Java之IO流之转换流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38225558/article/details/82527035

InputStreamReader:字节输入流转字符输入流

第一步: 创建InputStreamReader对象,构造方法中传入一个InputStream字节输入流

构造方法摘要
InputStreamReader(InputStream in)
          创建一个使用默认字符集的 InputStreamReader。
InputStreamReader(InputStream in, Charset cs)
          创建使用给定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec)
          创建使用给定字符集解码器的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName)
          创建使用指定字符集的 InputStreamReader。

第二步:读

 int read()
          读取单个字符。
 int read(char[] cbuf, int offset, int length)
          将字符读入数组中的某一部分。

第三步:关闭流

 void close()
          关闭该流并释放与之关联的所有资源。

OutputStreamWriter:字符输出流转字节输出流

第一步:创建OutputStreamWriter对象,构造方法中传入一个OutputStream字节输出流

构造方法摘要
OutputStreamWriter(OutputStream out)
          创建使用默认字符编码的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, Charset cs)
          创建使用给定字符集的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, CharsetEncoder enc)
          创建使用给定字符集编码器的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName)
          创建使用指定字符集的 OutputStreamWriter。

第二步:写

 void write(char[] cbuf, int off, int len)
          写入字符数组的某一部分。
 void write(int c)
          写入单个字符。
 void write(String str, int off, int len)
          写入字符串的某一部分。

第三步:关闭流

 void close()
          关闭此流,但要先刷新它。

ex:

/**
 * 转换流:
 * InputStreamReader:字节输入流转字符输入流
 * OutputStreamWriter:字符输出流转字节输出流
 * @author 郑清
 */
public class _07ChangeStream {
	 
	public static void main(String[] args) throws IOException {
		//InputStreamReader:字节流转字符流
		//1.创建InputStreamReader对象,构造方法中传入一个InputStream字节输入流
		InputStream  is  = new FileInputStream("D:1/1.txt");
		InputStreamReader isr = new InputStreamReader(is);
		
		//2.读
		char[] c = new char[5];
		int len;
		while((len = isr.read(c)) != -1) {
			System.out.print(new String(c,0,len));
		}
		
		//3.关闭流
		isr.close();//注意:这里只需要关闭包装之后的字符流isr  不用关闭is  ==》原因:因为is被包装到了isr里面,关闭isr就一起关闭了is
		
		
		//OutputStreamWriter:字符流转字节流
		//1.创建OutputStreamWriter对象,构造方法中传入一个OutputStream字节输出流
		OutputStream fos = new FileOutputStream("D:1/1.txt"); 
		OutputStreamWriter osw = new OutputStreamWriter(fos);
	
		//2.写
		osw.write("这是即将写入的内容!!!");
		osw.flush();//刷新流
		
		//3.关闭流
		osw.close();
	}

}

猜你喜欢

转载自blog.csdn.net/qq_38225558/article/details/82527035