标签:style blog java color 使用 os 文件 io
流按处理单位不同可以划分为字节流和字符流。字节流以字节为单位进行读写,字符流以字符为单位进行读写。一般在处理图片,多媒体等原始字节信息时,用字节流操作(如FileInputStream FileOutputStream等)。如文件包含的是字符信息,用字符流处理。
InputStreamReader是字节流通向字符流的桥梁,可以实现字节流到字符流的转化。实际编码中常常使用BufferedReader包装InputStreamReader。
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class InputStreamReaderTest { public static void main(String[] args) throws IOException { FileInputStream fin = null; InputStreamReader inr = null; BufferedReader br = null; fin = new FileInputStream("c:\\save.txt"); inr = new InputStreamReader(fin); br = new BufferedReader(inr); String str = br.readLine(); System.out.println(str); if(br != null){ br.close(); } if (inr != null) { inr.close(); } if(fin != null){ fin.close(); } } }
从文件save.txt 中读取信息。
为了更清楚的显示操作步骤,这里将所有抛异常的处理丢给方法,实际编码中应该使用try catch语句。
注意关闭流的顺序。
OutputStreamWriter是字符流通向字节流的桥梁,可完成字符流到字节流的转化,实际编码中借助BufferedWriter来操作。
import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class OutputStreamWriterTest { public static void main(String[] args) { FileOutputStream fos = null; OutputStreamWriter osw = null; BufferedWriter bw = null; try{ fos = new FileOutputStream("c:\\save.txt"); osw = new OutputStreamWriter(fos); bw = new BufferedWriter(osw); bw.write("hello katkit"); } catch (IOException e) { e.printStackTrace(); } if(bw != null){ try{ bw.close(); } catch (IOException e) { e.printStackTrace(); } } if (osw != null) { try{ osw.close(); } catch (IOException e) { e.printStackTrace(); } } if(fos != null){ try{ fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }
向文件save.txt 中写入信息。
如果能明白Java在设计关于流的操作类时采用了装饰的设计模式,那么理解这些类之间的关系和运用他们就不成问题了。
InputStreamReader、OutputStreamWriter,布布扣,bubuko.com
InputStreamReader、OutputStreamWriter
标签:style blog java color 使用 os 文件 io
原文地址:http://www.cnblogs.com/sphere/p/3875335.html