首先,解释一下:
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()));
bw.write(s);
bw.close();
诚意之作:silenttalfrede@163.com