转换流(字节流-->字符流)

来源:互联网 发布:产品数据图纸英语 编辑:程序博客网 时间:2024/05/16 15:37
 转换流:是字节流通向字符流的桥梁
 
输入字节流的转换流:InputStreamReader是字节流通向字符流的桥梁。 输入字节流转换成输入字符流。字节流--->字符流 
输出字节流的转换流:OutputStreamWriter是字符流通向字节流的桥梁。输出字节流转换成输出字符流。字节流--->字符流
转换流的作用:
    1.如果目前所获取到的是一个字节流需要转换成字符流使用,就可以使用转换流。
    2.使用转换流可以指定编码进行读写文件。
  1. package com.cn.ioStream;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.io.InputStreamReader;
  9. import java.io.OutputStreamWriter;
  10. /**
  11. * Author:Liu Zhiyong(QQ:1012421396)
  12. * Version:Version_1
  13. * Date:2016年8月2日19:13:52
  14. * Desc:
  15. 转换流:是字节流通向字符流的桥梁
  16. 输入字节流的转换流:InputStreamReader是字节流通向字符流的桥梁。 输入字节流转换成输入字符流。字节流--->字符流
  17. 输出字节流的转换流:OutputStreamWriter是字符流通向字节流的桥梁。输出字节流转换成输出字符流。字节流--->字符流
  18. 转换流的作用:
  19. 1.如果目前所获取到的是一个字节流需要转换成字符流使用,就可以使用转换流。
  20. 2.使用转换流可以指定编码进行读写文件。
  21. */
  22. public class Demo1 {
  23. public static void main(String[] args) throws IOException {
  24. //readTest1();
  25. //writeTest1();
  26. //writerTest2();
  27. readTest2();
  28. }
  29. public static void readTest1() throws IOException {
  30. InputStream in = System.in;//获取到了标准的输入流
  31. //System.out.println((char)in.read());//一次只能读取一个字节
  32. InputStreamReader inputStreamReader = new InputStreamReader(in);//是字节流通向字符流的桥梁
  33. BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
  34. System.out.println(bufferedReader.readLine());
  35. }
  36. //使用输入字节流的转换流指定码表进行读取文件数据
  37. public static void readTest2() throws IOException {
  38. File file = new File("src/com/cn/ioStream/a.txt");
  39. FileInputStream fileInputStream = new FileInputStream(file);
  40. //创建字节流的转换流并且指定码表进行读取
  41. //InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "gbk");
  42. InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
  43. char[] buf = new char[1024];
  44. int length = 0;
  45. while((length = inputStreamReader.read(buf)) != -1){
  46. System.out.print(new String(buf, 0, length));
  47. }
  48. inputStreamReader.close();
  49. }
  50. public static void writeTest1() throws IOException{
  51. File file = new File("src/com/cn/ioStream/a.txt");
  52. FileOutputStream fileOutputStream = new FileOutputStream(file, true);
  53. //把输出字节流转换成输出字符流
  54. //fileOutputStream.write("大家好".getBytes());
  55. OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
  56. outputStreamWriter.write("hahhahah哈哈哈哈哈");
  57. outputStreamWriter.close();
  58. }
  59. //使用输出字节流的转换流指定码表写出数据
  60. public static void writerTest2() throws IOException {
  61. File file = new File("src/com/cn/ioStream/a.txt");
  62. FileOutputStream fileOutputStream = new FileOutputStream(file, true);
  63. //把输出字节流转换成输出字符流并且指定编码表。
  64. //fileOutputStream.write("大家好".getBytes());
  65. OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "GBK");
  66. outputStreamWriter.write("请叫我木丁西what");
  67. outputStreamWriter.close();
  68. }
  69. }
0 0
原创粉丝点击