InputStreamReader:是字节流通向字符流的桥梁;

OutputStreamWriter 是字符流通向字节流的桥梁;

  1. package com.lp.ecjtu;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.InputStreamReader;
  11. import java.io.OutputStream;
  12. import java.io.OutputStreamWriter;
  13. import java.io.Writer;
  14.  
  15. public class SystemReadInKeyTranfer {
  16. /**
  17. * 1.源:键盘
  18. * 目的:控制台
  19. * 2.源:键盘录入:把键盘录入的数据存储到一个文件中
  20. * 目的:文件
  21. * 3.源:文件:将文件中的数据打印在控制台上
  22. * 目的:控制台
  23. * 流操作的基本流程:
  24. * 通过两个明确来完成
  25. * 1 明确源和目的
  26. * 源:输入流,InputStream Reader
  27. * 目的:输出流 :outputStream Writer
  28. * 2.操作的是否为纯文本
  29. * 是:字符流
  30. * 不是:字节流
  31. * 3.当体系明确后,在明确使用哪个具体的对象。
  32. * 通过来设备来区分:
  33. * 源设备:内存,硬盘,键盘
  34. * 目的:内存,硬盘,控制台
  35. * 1.将一个文本文件中的数据存储到另一个文件。复制文件。
  36. * 源:因为是源,所以使用读取流。InputStream Reader
  37. * 是文本文件:这是可以选择Reader
  38. * 明确设备:硬盘上的一个文件
  39. * Reader体系中可以操作文件的FileReader
  40. * 是否提高效率,是,加入Reader体系中的BufferedReader
  41. * FileReader fr = new FileReader("a.txt");
  42. * BufferedReader buffr = new BufferedReader(fr);
  43. *
  44. * 目的:outputStream Writer
  45. * 是否为纯文本,是!用字符流 Reader.
  46. * 设备:硬盘上的文件.
  47. * Writer体系中可以操作文件的FileWriter
  48. * 是否提高效率,是,加入Writer体系中的BufferedWriter
  49. * FileWriter fr = new FileWriter("a.txt");
  50. * BufferedWriter buffr = new BufferedWriter(fr);
  51. *
  52. * 2.将一个图片文件中的数据存储到另一个文件。复制文件。
  53. */
  54. public static void main(String[] args){
  55.  
  56. BufferedReader bufferr = null;
  57. BufferedWriter bufferw = null;
  58. try {
  59. //将System.in->InputStream->Reader对象
  60. //将Reader对象包装成BufferedReader对象
  61. //键盘录入
  62. /*bufferr =
  63. new BufferedReader(new InputStreamReader(System.in));
  64.  
  65. //把键盘录入的数据存储到out.txt文件当中
  66. bufferw=
  67. new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));
  68. */
  69. //将文件中的数据与bufferedReader相关联,InputStreamReader字节向字符转化的桥梁。
  70. bufferr =
  71. new BufferedReader(new InputStreamReader(new FileInputStream("FileReaderDemo.java")));
  72. //将文件的数据打印到控制台,OutputStreamWriter字符向字节转化的桥梁
  73. bufferw = new BufferedWriter(new OutputStreamWriter(System.out));
  74. String line = null;
  75. //采用循环的方式逐个读取
  76. while((line=bufferr.readLine())!=null){
  77. //如果读取的字符串为“over”的时候,则程序退出
  78. if(line.equals("over")){
  79. System.exit(-1);//或者用break
  80. }
  81. //打印读取的内容
  82. //System.out.println(line.toUpperCase());
  83. //使用字符输出流进行输出
  84. bufferw.write(line.toUpperCase());
  85. bufferw.newLine();//跨平台换行,不用'\r\n'
  86. bufferw.flush();
  87. }
  88. } catch (IOException e) {
  89. // TODO Auto-generated catch block
  90. e.printStackTrace();
  91. }finally{
  92. try {
  93. if(bufferr != null){
  94. bufferr.close();
  95. }
  96. if(bufferw != null){
  97. bufferw.close();
  98. }
  99. } catch (IOException e) {
  100. // TODO Auto-generated catch block
  101. e.printStackTrace();
  102. }
  103. }
  104.  
  105. }
  106.  
  107. }
 

java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流的更多相关文章

  1. java基础知识回顾之javaIO类---FileWriter和FileReader

    FileWriter类的构造方法定义如下: 1.public FileWriter(File file)throws IOException 字符流的操作比字节流操作好在一点,就是可以直接输出字符串了 ...

  2. java基础知识回顾之javaIO类总结

    java IO体系图 IO流的操作规律总结: 1,明确体系: 数据源:InputStream ,Reader 数据汇:OutputStream,Writer 2,明确数据:因为数据分两种:字节,字符. ...

  3. java基础知识回顾之javaIO类--RandomAccessFile类

    java.io 类 RandomAccessFile java.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类.2.该类既能读又能写.3.该对象内部 ...

  4. java基础知识回顾之javaIO类--java序列化和反序列化

    /** *  * 一:理解序列化反序列化及其应用 * 序列化:把堆内存的对象转化成字节流的过程. * 反序列化:把字节流序列恢复重构成对象的过程. * 对象的序列化的用途:1.把对象的字节序列持久化, ...

  5. java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter

    FilenameFilter和FileFilter都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码:通过使用File类中String[] list(FilenameFi ...

  6. java基础知识回顾之javaIO类--File类

    File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读, ...

  7. java基础知识回顾之javaIO类---BufferedInputStream和BufferedOutputStream

    MP3的复制过程: package com.lp.ecjtu; import java.io.BufferedInputStream; import java.io.BufferedOutputStr ...

  8. java基础知识回顾之javaIO类---FileInputStream和FileOutputStream字节流复制图片

    package com.lp.ecjtu; import java.io.FileInputStream; import java.io.FileNotFoundException; import j ...

  9. java基础知识回顾之javaIO类---BufferedReader和BufferedWriter

    使用了装饰设计模式:此类的设计是为了提高流操作数据的效率.思想就是定义容器将数据进行临时存储,对于缓冲区对象,其实就是将这个容器进行了分装,并提供了更高效的操作方法. BufferReader: pa ...

随机推荐

  1. oracle自定义job名字,job调度

    一.调试创建 begin -- create_schedule dbms_scheduler.create_schedule(schedule_name => 's_change_send_da ...

  2. hdu 3342 Legal or Not

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3342 Legal or Not Description ACM-DIY is a large QQ g ...

  3. Windows Phone Listbox虚拟化的问题

    最近在项目里面碰到最头疼的一个难题就是Listbox虚拟化的问题,查阅很多文档其实Listbox本身是支持虚拟化的,那么在什么情况下会破坏Listbox的虚拟化呢?目前我接触到的主要有两个原因:一.是 ...

  4. Android内存管理机制

    相信一步步走过来的Android从业者,每个人都会遇到OOM的情况.如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力. 今天我们就谈谈在Android平台下内存的管理之道,开始 ...

  5. Paragon NTFS for Mac免费获取官方赠送正版.更新获取ntfs for mac 14方法

    Paragon NTFS for Mac免费获取官方赠送正版,没有这个软件的朋友赶紧收下.获取地址http://www.paragon-drivers.com/cn/ntfs-mac-free/ntf ...

  6. 使用Ajax.BeginForm 中需要 上传文件 但 Request.files获取不到

    使用Mvc里的插件jquery.unobtrusive-ajax.min.js 之前一直困在这里,一开始以为添加属性enctype="multipart/form-data"就可以 ...

  7. oc中对象的初始化

    在.m文件中使用对象方法: - (id)init { _name =@"zhangsan"; _age = 18; return self; } 然后通过main方法中进行创建对象 ...

  8. ListView usage in ERP-DEV

    ListView Learning Note how to add double click event to listviewitem in ListView. refer link in stac ...

  9. JavaScript设计模式与开发实践——JavaScript的多态

    “多态”一词源于希腊文polymorphism,拆开来看是poly(复数)+ morph(形态)+ ism,从字面上我们可以理解为复数形态. 多态的实际含义是:同一操作作用于不同的对象上面,可以产生不 ...

  10. P1231: [Usaco2008 Nov]mixup2 混乱的奶牛

    这是一道状压DP,首先这道题让我意识到状态是从 1 to (1<<n)-1 的,所以当前加入的某头牛编号是从 0 to n-1 的,所以存储的时候习惯要改一下,这样子做状压DP才会顺一点吧 ...