java期末I/O流文件交互操作最全复习

java期末I/O流最全复习 

import java.io.File;

public class e1 {
    public static void main(String[] args) {
        File f=new File("F:\\IDEA\\学生成绩.txt");
        System.out.println(f);
    }
}

File类常见方法

import java.io.File;

public class e2 {
    public static void main(String[] args) {
        File file=new File("F:\\IDEA\\学生成绩.txt");
        System.out.println("文件是否存在:"+file.exists());
        System.out.println("文件名:"+file.getName());
        System.out.println("文件大小:"+file.length()+"bytes");
        System.out.println("文件相对路径:"+file.getPath());
        System.out.println("文件绝对路径:"+file.getAbsolutePath());
        System.out.println("文件的父级对象是否是文件:"+file.isFile());
        System.out.println("文件的删除是否成功:"+file.delete());

    }
}

遍历目录下的文件

(1)遍历指定目录下的文件

(2)遍历指定目录下指定扩展名的文件

(3)遍历包含子目录中的文件在内的所有文件

import java.io.File;

public class e3 {
    public static void main(String[] args) {
        //创建file文件
        File file=new File("F:\\IDEA");
        if(file.isDirectory()){//判断目录下所有文件的文件名
            String[] names=file.list();//获取目录下所有文件的文件名
            for(String name:names){
                System.out.println(name);//输出文件呢名
            }
        }
    }
}

 

遍历指定目录下指定扩展名的文件,File类提供了一个重载list()方法,该方法接收一个FilenameFilter类型的参数。FilenameFilter是一个文件过滤器,其中定义了一个accept()的
抽象方法,对file的所有子目录或文件进行迭代
import java.io.File;
import java.io.FilenameFilter;


public class e4 {
    public static void main(String[] args) {
        //创建file对象
        File file=new File("F:\\IDEA");
        //创建问加你过滤器对象
        FilenameFilter filter=new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File currFile=new File(dir,name);
                if(currFile.isFile()&&name.endsWith("java")){
                    return true;
                }else{
                    return false;
                }
            }
        };
        if(file.exists()){
            String[] lists= file.list(filter);
            for(String name:lists){
                System.out.println(name);
            }
        }
    }
}

字节流

字节流是程序中最常用的流,根据数据的传输方向分为字节输入流和字节输出流,在I/O流操作结束之后,应该调用close()方法关闭I/O流,从而释放I/O流所占用的系统资源

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class e5 {
    public static void main(String[] args) throws IOException {
        FileInputStream in=new FileInputStream("F:\\IDEA\\1.txt");
        int b=0;
        while(true){
            b=in.read();
            if(b==-1){
                break;
            }
            System.out.println(b);
        }
        in.close();
    }
}

 

 字节流写入文件

import java.io.*;

public class e6 {
    public static void main(String[] args) throws IOException {
        OutputStream out=new FileOutputStream("example.txt");
        String str="祝你天天开心呀宝";
        byte[] b=str.getBytes();
        for(int i=0;i<b.length;i++){
            out.write(b[i]);
        }
        out.close();
    }
}

 

文件的复制 

import java.io.*;
public class e7 {
    public static void main(String[] args) throws Exception {
        InputStream in=new FileInputStream("F:\\IDEA\\1.txt");
        OutputStream out=new FileOutputStream("F:\\IDEA\\2.txt");
        byte[] buff=new byte[1024];
        int len;
        long begintime=System.currentTimeMillis();
        while ((len=in.read(buff))!=-1){
            out.write(buff,0,len);
        }
        long endtime=System.currentTimeMillis();
        System.out.println("复制文件所消耗的时间是:"+(endtime-begintime)+"ms");
        in.close();
        out.close();
    }
}

字符流 

字符流也有两个顶级的父类,分别是Reader类和Writer类。其中,Reader类是字符输入流,用于从某个源设备中读取字符,Writer类是字符输出类,用于向某个目标设备写入字符

import java.io.*;
public class e8 {
    public static void main(String[] args) throws Exception {
        //创建一个FileReader对象,用来读取文件中的字符
        FileReader reader=new FileReader("example.txt");
        int ch;
        while((ch=reader.read())!=-1){
            System.out.print((char)ch);
        }
        reader.close();
    }
}

 

import java.io.*;
public class e9 {
    public static void main(String[] args) throws Exception {
        //创建字节输入流in,并指定文件为src.txt
        FileInputStream in=new FileInputStream("src.txt");
        //将字节输入流in转换成字符输入流
        InputStreamReader isr=new InputStreamReader(in);
        //创建字节输出流out,并指定目标文件为des.txt
        FileOutputStream out=new FileOutputStream("des.txt");
        //将字节输出流out转换成字符输出流osw
        OutputStreamWriter osw=new OutputStreamWriter(out);
        int ch;
        while((ch=isr.read())!=-1){
            osw.write(ch);
        }
        isr.close();
        osw.close();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值