栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

字符流Reader和Writer

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符流Reader和Writer

java.io.InputStream和OutputStream是所有字节输入流与输出流的超类,FileInputStream,ObjectOutputStream,BufferedInputStream都继承InputStream或OutputStream

java.io.Reader和Writer是所有字节输入流与输出流的超类,和字节流的超类是平级关系

Reader和Writer是两个抽象类,里面规定了所有字符流都必须具备的读写字符的相关方法

字符流最小读写单位为字符,但底层实际上还是读写字节,只是字节与字符的转换工作由字符流完成

InputStreamReader和OutputStreamWriter

java.io.InputStreamReader和OutputStreamWriter是常用的字符流的一对实现类,同时它们也是一对高级流

在流链接中的作用:

1.衔接字符流和字节流

2.将字节与字符进行转换方便读写

OutputStreamWriter

public class OSWDemo {
    public static void main(String[] args) throws IOException {
        //向文件osw.txt中写入字符串
        FileOutputStream fos = new FileOutputStream("osw.txt");
        
        OutputStreamWriter osw = new OutputStreamWriter(
                fos,StandardCharsets.UTF_8);

        //转换流会将写出的字符串转换为字节后再通过链接的文件流写入文件。
        osw.write("摩擦摩擦~在光滑的马路牙子上打出溜滑~");
        osw.write("我的滑板鞋~时尚时尚最时尚~");
        System.out.println("写出完毕!");
        osw.close();
    }
}

InputStreamReader

public class ISRDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("osw.txt");
        InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8);
        
//        int d = isr.read();
        
        int d;
        while((d = isr.read())!=-1) {
            System.out.print((char) d);
        }
        isr.close();

    }
}
缓冲字符流

java.io.BufferedWriter和BufferedReader

缓冲字符流内部也有一个缓冲区,读写文本数据;以块读写形式加快效率

缓冲字符输出流:java.io.PrintWriter

PrintWriter具有自动行刷新的缓冲字符输出流,它内部总会自动连接BufferedWriter作为块读写加速使用。

具体使用流程:

1.App中输入“你好”

2.PrintWriter中按行写得出字符串 ,并且自动行刷新,即“你好”+n

3.BufferedWriter中进行快写文本数据加速

4.OutputStreamWriter中衔接其他字符流和下面的字节流,将写入的字符转化为字节

5.FileOutputStream将字节写入到文件中

public class PWDemo {
    public static void main(String[] args) throws FileNotFoundException {
        //向文件pw.txt中写入文本数据
        PrintWriter pw = new PrintWriter("pw.txt");
        pw.println("super idol的笑容都没你的甜");
        pw.println("八月正午的阳光都没你耀眼");
        System.out.println("写出完毕");
        pw.close();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858221.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号