java I/O流(一)——FileWriter,BufferedWriter,inputStream,BufferedInputStream,InputStreamReader

本文介绍了Java中的I/O流,包括FileWriter的使用,文件续写,FileReader的读取操作,以及如何利用BufferedWriter和BufferedReader进行文本复制。此外,还讲解了字节流的InputStream和OutputStream,以及转换流InputStreamReader在字节流与字符流之间的转换。文章最后讨论了选择合适流的依据,帮助理解何时使用字节流和字符流。
摘要由CSDN通过智能技术生成

I/O全名:Input Output,输入输出的意思

•IO流用来处理设备之间的数据传输
•流操作分两种:字节流,字符流
•流按流向分为:输入流,输出流

IO

•字节流的抽象积累

◦InputStream
◦OutputStream

•字符流的抽象基类

◦Reader
◦Writer

FileWriter

•需求:在硬盘上创建一个文件,并且写入数据
那我们怎么去做?他构造函数比较多的,我们看例子

public class HelloJJAVA {
   
    public static void main(String[] args) {
        /**
         * 需求:在硬盘上创建一个文件,并且写入数据
         */

        // 一被初始化就必须要有被操作的文件
        // 如果不指定位置,就创建在同目录下
        // 如果目录下存在同名文件,覆盖
        try {
            FileWriter fileWriter = new FileWriter("test.txt");
            // 写入数据到内存
            fileWriter.write("abcde");
            // 刷新该流的缓冲
            // fileWriter.flush();

            // 关闭流 关闭之前会刷新,和flush的区别在于flush刷新后流可以继续工作
            fileWriter.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

这样在我们的项目根目录下就可以看到生成的文件了

文件续写
我们知道,文件存在的话就会覆盖,但是我们不想这样,我们想在原有的数据中续写,这该去怎么做?

public class HelloJJAVA {
    public static void main(String[] args) {

        try {
            //参数2代表不覆盖已有的文件,支持续写
            FileWriter fileWriter = new FileWriter("demo.txt",true);
            fileWriter.write("你好");
            fileWriter.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

构造传参的时候设置为true就可以续写文件了

FileReader
既然写已经会了,那我们就来读取了

public class HelloJJAVA {
    public static void main(String[] args) {
        try {
            // 创建一个文件读取流对象,和指定名称的文件关联,保证文件存在,
            // 如果不存在,异常
            FileReader fileReader = new FileReader("demo.txt");
            // 读取单个字符,自动往下读
            int cd = fileReader.read();
            System.out.println((char) cd);

            //全部打印
            int ch = 0;
            while ((ch = fileReader.read()) != -1) {
                System.out.println(ch);
            }

            fileReader.close();

        } catc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值