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();
        }
    }
  • 相关阅读:
    581. 最短无序连续子数组
    217. 存在重复元素
    189. 旋转数组
    169. 多数元素
    122. 买卖股票的最佳时机 II
    119. 杨辉三角 II
    118. 杨辉三角
    外显子分析思路总结(Exome Sequencing Analysis review)
    宁夏采样记20181129
    haploview出现“results file must contain a snp column”的解决方法
  • 原文地址:https://www.cnblogs.com/zhao307/p/5368382.html
Copyright © 2011-2022 走看看