I/O流(输入/输出)

 一.File类 

常用方法 

 2.遍历目录下的文件

public static void main (String[] args) throws Exception{
    File flie = new File ("D:/IdeaWorkspace/chapter07");
    if(file.isDirectory()){    //判断File对象对应的目录是否存在
        String[] names = file.list(); //获取目录下的所有文件的文件名
            for(String name : names){
                System.out.println(name); //输出文件名
        }
    }
}

删除文件及目录 在输出后加一个delete

二.字节流

       字节流的概念

         在计算机中,无论是文本、图片、音频还是视频,所有文件都是以二进制(字节)形式存在的,I/O流中针对字节的输入/输出提供了一系列的流,统称为字节流。字节流是程序中最常用的流,根据数据的传输方向可将其分为字节输入流和字节输出流。在JDK中,提供了两个抽象类InputStream和OutputStream,它们是字节流的顶级父类,所有的字节输入流都继承自InputStream,所有的字节输出流都继承自OutputStream。

InputStream

 

OutputStream

 1.文件的复制

四个步骤:

public static void main(String[] args) throws Exception{
    //创建一个字节流输入流,用于读取当前目录下source文件夹中的文件
    InputStream in = new FileInputStream ("source/五环之歌.doc");
    //创建一个文件字节输出流,用于将读取的数据写入target目录下的文件中
    OutputStream in = new FileOutputStream ("target/五环之歌.doc");
    int len; //记住每次读取的一个字节
    //获取复制文件前的系统时间
    leng begintime = System.courrenTimeMillis();
    while((len = in.read())!=-1){//读取每个字节是否到文件末尾
        out.write(len);//将读取的字节写入文件
    } 
    //获取文件复制结尾系统时间
    long endtime = System.courrenTimeMillis();
    System.out.println("复制文件所消耗的时间是:"+(endtime - begintime)+"毫秒");
    in.close();
    out.close();
}

三.字符流

当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。 

字符输入流Reader

java.io.Reader抽象类是标识用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。

FileReader

构造方法的作用:

1.创建一个FileReader对象

2.会把FileReader对象指向要读取的文件

字符输入流的使用步骤:

1.创建FileReader对象,构造方法中绑定要读取的数据源;

2.使用FileReader对象中的方法read读取文件;

3.释放资源。

字符输出流Writer

java.io.Writer抽象类时标识用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。

FileWriter 

1.创建一个FileWriter对象;

2.会根据构造方法中传递的文件/文件路径,创建文件;

3.会把FileWriter对象指向创建好的文件。

字符输出流的使用步骤:

1.创建一个FileWriter对象;

2.构造方法中绑定要写入数据的目的地;

3.使用FileWriter对象中的方法writer,把数据据写入到内存缓冲区(字符转换为字节的过程)中;

4.使用FileWriter对象中的方法flush,把内存缓冲区中的数据,刷新到文件中;

4.释放资源(会把内存缓冲区中的数据刷新到文件中,故flush可不写)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值