常用流

2016-11-10  本文已影响0人  VikingOldYoung

一、处理流

用于增强功能,提高性能。位于节点流之上

1.缓冲流

要使用新增方法就不能用多态了
缓冲流使用方法:缓冲流(节点流) 包裹节点流。建议使用缓冲流提高性能。

字符缓冲流示例

public static void copy(File src, File dest) throws IOException {
        // 选择流,这里测试新方法,声明就不能用多态了。
        BufferedReader bread = new BufferedReader(new FileReader(src));
        BufferedWriter bwrite = new BufferedWriter(new FileWriter(dest));
        // 用来临时储存数据的字符串
        String str;
        // 操作,读取在while里就读了
        while (null != (str = bread.readLine())) {
            bwrite.write(str);
            // 类似于\r\n
            bwrite.newLine();
            // 刷新是个好习惯
            bwrite.flush();
        }
        // 关闭资源
        bwrite.close();
        bread.close();
    }

<br />

二、转换流

字节流转换为字符流,处理乱码(编码集,解码集)

使用:转换流(字节流) 即可转为字符流来使用
编码转码测试
算了,太简单,直接看转换流的程序。也是拷贝,同时使用了两种流

public static void main(String[] args) throws IOException {
        File f=new File("F:/javaIotest/213.txt");
        File dest=new File("F:/javaIotest/诗歌.txt");
        //InputStreamReder和OutputStreamWriter 字节流转换为字符流,可以在形参里选择编码|解码集
        //这里选择gbk即Ascall码编码,即读取的文件是gbk格式的,如果不选择直接使用utf-8的话会乱码,怎么输出都不对啦。读取都错了
        BufferedReader is=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
        //解码使用默认的平台解码,我这里是utf-8,可以选择任何格式输出。
        BufferedWriter os=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest)));
        String str;
        while(null!=(str=is.readLine())){
            os.write(str);
            os.newLine();
            os.flush();
        }
        os.close();
        is.close();
    }
上一篇 下一篇

猜你喜欢

热点阅读