首页 > 代码库 > InputStreamReader、OutputStreamWriter
InputStreamReader、OutputStreamWriter
流按处理单位不同可以划分为字节流和字符流。字节流以字节为单位进行读写,字符流以字符为单位进行读写。一般在处理图片,多媒体等原始字节信息时,用字节流操作(如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在设计关于流的操作类时采用了装饰的设计模式,那么理解这些类之间的关系和运用他们就不成问题了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。