什么时候使用转换流?
在创建缓冲流对象 BufferedReader 或者BufferedWriter 时,构造方法需要一个 Reader 或者 Writer 节点流对象参数。这时只有FileInputStream字节流对象,这时就可以把使用转换流构造方法,把 字节流--->字符流。
InputStreamReader:
public class InputStreamReaderTest01 {
public static void main(String[] args) {
BufferedReader br = null;
try {
//字节流对象
FileInputStream in = new FileInputStream("..\\..\\java\\temp.txt");
//字节流-->字符流
InputStreamReader reader = new InputStreamReader(in);
//创建缓冲流对象
br = new BufferedReader(reader);
String s = null;
while ((s = br.readLine()) != null){
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
OutputStreamWriter:
public class OutputStreamWriterTest02 {
public static void main(String[] args) {
BufferedWriter writer = null;
try {
writer = new BufferedWriter//缓冲流
(new OutputStreamWriter//转换流,字节流-->字符流
(new FileOutputStream//字节流
("..\\..\\java\\writer.txt",true)
)
);
writer.write("\n");
writer.write("BufferedWriter流789");
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(writer != null){
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}