java.io知识点整理


java流类图总结

字节流和字符流的区别

字节流处理的是二进制文件,也就是说,二进制文件什么也能处理,比如文字和图片视频什么的。
而字符流则只能处理文本类型,但是它可以处理编码问题,例如我们的字节流读取出来的文件是乱码的,就是因为文件的编码问题。

下面是一个读取中文文本的样例。

public static void main(String args[]){
        int b; //这里的默认值是0
        try {
          //这里的f变量是为了后面建立char[]数组读取文件大小
            File f = new File("D:\\test.txt");
            //创建字符流
            InputStreamReader isr = new InputStreamReader(new FileInputStream(f),"GBK");
            //建立buf ,注意,如果文件中有中文的话,这里的buf里面会多建立空间,因为中文占两个字节空间
            char[] buf = new char[(int) f.length()];
            int len = isr.read(buf);
            String rs = new String(buf,0,len);
            isr.close();
        }
        catch (Exception e) {
            System.out.println("出错了,原因是:");
            System.out.println (e.toString());
        }

    }
原文地址:https://www.cnblogs.com/adroitwolf/p/14309784.html