java基础:用FileInputStream读取中文时出现了乱码,(用字符流或者)所以用ByteArrayOutputStream内存输出流可以把内存当做缓冲区,写入数据之后一次将所有数据写出()

package com.heima.otherIo;


import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Demo2_ByteArrayOutputStream {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("e.txt");
		ByteArrayOutputStream baos = new ByteArrayOutputStream();   // 在内存中创件可以增长的内存数组
		int b;
		while((b = fis.read()) !=-1)  {                           // 将读取到的数据逐个写入内存中
			baos.write(b);
		}
           //byte[] arr = baos.toByteArray();                       // 将缓冲区的数据全部获取出来,并赋给arr数组
           //System.out.println(new String(arr));   // 把整个arr数组都转成字符串
		   System.out.println(baos.toString());     //讲缓冲区的内容转成字符串,在输出语句中可以省略调用tostring方法
           fis.close();
    }
}

 

你可能感兴趣的:(Java学习)