java基础学习笔记之IO流

1.IO流用来处理设备之间的数据传输
方向:硬盘通过“读reader”完成对内存的读取,内存通过“写writer”完成对硬盘的写入
2.Java对数据的操作是通过流的方式
3.Java用于操作流的对象都在IO包中
4.流按操作数据分为两种:字节流和字符流
--字符流的由来:
》》字节流读取文字字节数据后,不直接操作而是先查指定的编码表。获取对应的文字。再对这个文字进行操作。简单说:字符流=字节流+编码表
--字节流的两个顶层父类:1.InputStream 2.OutputStream
--字符流的两个顶层父类:1.Reader 2.Writer
--字符流:

》》要操作文字数据,优先考虑字符流

》》而且要将数据从内存写到硬盘上,要使用字符流中的输出流。Writer

-操作文件的关键字为FileWriter,用于写入数据流。具体格式:FileWriter fw=new FileWriter(“demo.txt”,true);这是目标文件名,创建对象时会抛出个异常IOexception,这是因为文件名或许没有正确的路径,会不安全。如果路径文件不存在,则自动创建,如果存在,则会覆盖

小细节:在java里实现换行操作可以用\r,或者用LINE_SEPARATOR创建变量,调用System方法

此处代码

public class IOExceptionDemo {

    private static final String LINE_SEPARATOR = System.lineSeparator();

    public static void main(String[] args) {

        FileWriter fw = null;
        try {

            fw = new FileWriter("demo.txt", true);

            fw.write("abcde" + LINE_SEPARATOR + "hahaha");

        } catch (IOException e) {
            System.out.println(e.toString());
        } finally {
            if (fw != null)
                try {
                    fw.close();
                } catch (IOException e) {

                    throw new RuntimeException("关闭失败");
                }
        }
    }

}

这是重点,FileWriter处理异常的方式!!很重要

读取字符数据的关键字FileReader,具体格式 FileReader fr=new FileReader(“demo.txt”);必须保证文件是存在的,再调用read方法读取

read读取方法有两种方式:

public class Test11 {

    public static void main(String[] args) throws IOException {
        
        FileReader fr=new FileReader("demo.text");
        
        int ch=fr.read();
        
        System.out.println(ch);
        
        fr.close();
    }

}

这是方式一,挨个字符读取文件内的字符

public class Test11 {

    public static void main(String[] args) throws IOException {
        
        FileReader fr=new FileReader("demo.text");
        
        char[] buf=new char[3];
        int num=fr.read(buf);//将读取到的字符存储到数组中
        System.out.println(num+"  "+buf.toString());
        
        int num1=fr.read(buf);//将读取到的字符存储到数组中
        System.out.println(num+"  "+buf.toString());

        int num2=fr.read(buf);//将读取到的字符存储到数组中
        System.out.println(num+"  "+buf.toString());
    }

}

这是方式二,

两者的区别是方式2可以一次读取多个,方式1读取1个字符。

方式2有个细节就是当数组定义为3个时,每次重新读取的时候都放在同一个数组中,所以要覆盖先前读取的数据,然后输出的结果会覆盖,这个要注意!!!!

在这再说说复制的实现过程:

原理:读取c盘文件中的数据,然后再写入d盘文件中,连读带写

5.流按流向分为:输入流,输出流

转载于:https://www.cnblogs.com/java-jc921027/p/4623193.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值