JAVA 的两种流 字节流 InputStream OutputStream 字符流 Reader Writer

来源:互联网 发布:有没有网络教育平台 编辑:程序博客网 时间:2024/06/10 15:05
  1. IO分两种流   
  2.   
  3. 字节流 InputStream OutputStream   
  4.   
  5. 字符流 Reader  Writer   
  6.   
  7. 他们都是抽象类   
  8.   
  9. 具体实现   
  10. 字节流 FileInputStream  FileOutputStream   
  11. 字符流 FileReader    FileWriter   
  12.   
  13.   
  14. 字节流转换成字符流可以用 InputSteamReader  OutputStreamWriter   
  15.   
  16. 转换成BufferdReader  BufferedWriter 他们具有缓冲区   
  17.   
  18. 例如:读取文件 从字节流输入到字符流输入   
  19. 定义一个字节流:   
  20. Java代码  
  21. FileInputStream fileInputStream = new FileInputStream("d:/text.txt");  // 定义一个指向D:/TEXT.TXT 的字节流     
  22.      
  23. InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);     
  24. //字节流转换成InputStreamReader     
  25.      
  26. BufferedReader bufferedReader = new BufferedReader(inputSteamReader);     
  27. //InputStreamReader 转换成带缓存的bufferedReader     
  28.   
  29. FileInputStream fileInputStream = new FileInputStream("d:/text.txt");  // 定义一个指向D:/TEXT.TXT 的字节流  InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream); //字节流转换成InputStreamReader  BufferedReader bufferedReader = new BufferedReader(inputSteamReader); //InputStreamReader 转换成带缓存的bufferedReader  
  30.   
  31.   
  32. 可以把读出来的内容赋值给字符   
  33. Java代码  
  34. String ss = new String();     
  35. String s;     
  36. while((s = bufferedReader.readLine())!=null){     
  37.     ss += s;     
  38. }     
  39.   
  40. String ss = new String(); String s; while((s = bufferedReader.readLine())!=null){  ss += s; }  
  41.   
  42. 例如:写入文件  从字节流输出到字符流输出   
  43. Java代码  
  44. FileOutputStream fileOutputStream = new FileOutputStream("d:/text.txt"); //定义一个     
  45.      
  46. 指向D:/TEXT.TXT文件      
  47.      
  48. OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);     
  49.      
  50. BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);     
  51.      
  52. bufferedWriter.write(s);     
  53.      
  54. bufferedWriter.close();     
  55. outputStreamWriter.close();     
  56. fileOutputStream.close();    
  57.   
  58.   
  59. ------------------------------------------------------------  
  60. 字节流和字符流      如果数据流中最小的数据单元是字节,那么称这种流为字节流;如果数据流中最小的数据单元是字符,那么称这种流为字符流。在Java的IO系统 中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,java.io.Reader 和java.io.Writer分别表示字符输入流和字符输出流。I/O流的层次  
  61. 1.字节流:  
  62. 从InputStream和OutputStream派生出来的一系列类。这类流以字节(byte)为基本处理单位。  
  63. ◇ InputStream、OutputStream  
  64. ◇ FileInputStream、FileOutputStream  
  65. ◇ PipedInputStream、PipedOutputStream  
  66. ◇ ByteArrayInputStream、ByteArrayOutputStream  
  67. ◇ FilterInputStream、FilterOutputStream  
  68. ◇ DataInputStream、DataOutputStream  
  69. ◇ BufferedInputStream、BufferedOutputStream  
  70. 2.字符流:  
  71. 从Reader和Writer派生出的一系列类,这类流以16位的Unicode码表示的字符为基本处理单位。  
  72. ◇ Reader、Writer  
  73. ◇ InputStreamReader、OutputStreamWriter  
  74. ◇ FileReader、FileWriter  
  75. ◇ CharArrayReader、CharArrayWriter  
  76. ◇ PipedReader、PipedWriter  
  77. ◇ FilterReader、FilterWriter  
  78. ◇ BufferedReader、BufferedWriter  
  79. ◇ StringReader、StringWriter  
  80. 3.对象流  
  81. ◇ ObjectInputStream、ObjectOutputStream  
  82. 4.其它  
  83. ◇ 文件处理:  
  84. File、RandomAccessFile;  
  85. ◇ 接口  
  86. DataInput、DataOutput、ObjectInput、ObjectOutput----------------------------------------------------------------------------------------  
0 0
原创粉丝点击