zoukankan      html  css  js  c++  java
  • 字符流

    字符流:

      Java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码)。

      文本是byte byte byte的数据序列。

      文本文件是文本(char)序列按照某种编码方案(UTF-8,UTF-16BE,GBK)序列化为byte的存储结果。

      字符流(Reader  Writer)操作的是文本文件。

      字符的处理:一次处理一个字符,字符的底层依然是基本的字节序列。

      字符流的基本实现:

        InputStreamReader完成byte流解析为char流,按照编码解析。

        OutputStreamWriter提供char流到byte流,按照编码处理。

      也可以用FileReader FileWriter。 BufferedReader BufferedWriter PrintWriter进行读写。

      不同于字节流,字符流面对的是字符,操作的是字符数组,返回的也是字符char,但无论是方法 还是参数 和字节流都大同小异,它们本质是一样的。

      如果读写二进制文件,mp3 jpg等尽量使用BufferInputStream BufferOutputStream

      如果读写文本文件,尽量使用BufferReader PrintWriter.

    package com.zhao.charStream;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    /**
     * InputStreamReader and OutputStreamWriter Demo
     * 
     * @author admin
     *
     */
    public class IsrAndOswDemo {
    
        public static void main(String[] args) throws IOException {
    //        File file = new File("D:" + File.separator + "wang.txt");
            File file=new File("demo/wang.txt");
            FileInputStream fileInputStream = new FileInputStream(file);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
            int c;
            while ((c = inputStreamReader.read()) != -1) {
                System.out.print((char) c);
            }
            System.out.println();
            char[] chars = new char[8 * 1024];
    
    //        inputStreamReader.read(chars, 0, chars.length);
    //        String str = new String(chars, 0, chars.length);
    //        System.out.print(str);
    
            inputStreamReader.close();
            fileInputStream.close();
        }
    
    }
    package com.zhao.charStream;
    
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    /**
     * FileReader and FileWriter Demo
     * @author admin
     *
     */
    public class FrAndFwDemo {
    
        public static void main(String[] args) throws IOException {
            FileReader fileReader=new FileReader("D:/wang.txt");
            FileWriter fileWriter=new FileWriter("D:/zhao.txt",true);
            
            char[] cbuf=new char[8*1024];
            fileReader.read(cbuf,0,cbuf.length);
            fileWriter.write(cbuf, 0, cbuf.length);
            fileWriter.flush();
            
            fileReader.close();
            fileWriter.close();
        }
    
    }
    package com.zhao.charStream;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    /**
     * BufferedReader and BufferedWriter or PrintWriter Demo
     * @author admin
     *
     */
    public class BrAndBwOrPwDemo {
        public static void main(String[] args) throws IOException {
            //对文件进行读写操作
            FileReader in=new FileReader("D:/wang.txt");
            BufferedReader bufferedReader=new BufferedReader(in);
            FileWriter out=new FileWriter("D:/zhao.txt");
    //        BufferedWriter bufferedWriter=new BufferedWriter(out);
            PrintWriter printWriter=new PrintWriter(out);
            
            String str;
            while((str=bufferedReader.readLine())!=null){
                System.out.print(str); //一次读一行,并不识别换行
    //            bufferedWriter.write(str);
    //            //单独写出换行操作
    //            bufferedWriter.newLine();
    //            bufferedWriter.flush();
                printWriter.println(str);
            }
            
            bufferedReader.close();
            printWriter.close();
    //        bufferedWriter.close();
        }
    }
  • 相关阅读:
    Android开发学习之路-插件安装、检查应用是否安装解决方案
    Android开发学习之路-自定义控件(天气趋势折线图)
    Android开发学习之路-记一次CSDN公开课
    Android开发学习之路-RecyclerView滑动删除和拖动排序
    Android开发学习之路-带文字的图片分享
    Android开发学习之路-Android N新特性-多窗口模式
    Android开发学习之路-Volley源码解析
    Android开发学习之路-Android Studio开发小技巧
    Android开发学习之路-提升用户体验小技巧
    Android开发学习之路-Android6.0运行时权限
  • 原文地址:https://www.cnblogs.com/zhao307/p/5368382.html
Copyright © 2011-2022 走看看