InputStream 、 InputStreamReader 、 BufferedReader

首先,解释一下:

InputStream:得到的是字节输入流,InputStream.read("filename")或者new FileInputStream(file),得到的是字节流

InputStreamReader:从字节到字符的桥梁。InputStreamReader(InputStream.read("filename"))或者InputStreamReader(new FileInputStream(file))

Reader:读取的是字符流,reader.read(InputStreamReader(InputStream in)),便可从字节变为字符。




1、处理字节流的抽象类::InputStream、OutputStream

InputStream   :最低级,是字节输入流的所有类的超类,一般我们使用它的子类FileInputStream

InputStream in =new FileInputStream(file);

while((i=in.read()) != -1){    
                    System.out.println(i);    
            }

OutputStream:最低级,字节输出流的所有类的超类,一般我们使用它的子类FileOutputStream

OutputStream out =new FileOutputStream(fileName);

out.write(b);


2、处理字符流的抽象类:InputStreamReader 、OutputStreamWriter

InputStreamReader  :是字节流通向字符流的桥梁,它将字节流转换为字符流,一般使用

Reader re=new InputStreamReader(new FileInputStream(file));

或者

InputStreamReader re= new InputStreamReader(new FileInputStream(file));

while((i=re.read()) != -1){    
                    System.out.println(i);    
            }

OutputStreamWriter:是字符流通向字节流的桥梁,它将字符流转换为字节流

Writer wr=new OutputStreamWriter(fileName);

wr.write(b);



3、处理字符串:BufferedReader、BufferedWriter

BufferedReader:最高级,由Reader类扩展而来,提供通用的缓冲方式文本读取,readLine读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取

BufferedReader br = new BufferedReader(new FileReader(file));
String data = "";
String line = null;
while ((line = br.readLine()) != null) {
data = data.concat(line);
}

BufferedWriter :最高级,由Writer 类扩展而来,提供通用的缓冲方式文本写入, newLine使用平台自己的行分隔符,将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入

BufferedWriter bw= new BufferedWriter(new FileWriter(file.getAbsolutePath()));
b
w.write(s);

bw.close();


诚意之作:silenttalfrede@163.com




版权声明:本文为silenttalfrede原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。