学习笔记day_4 java文件操作

File类常用方法

 /*File类文件操作练习 创建File对象*/
        File file=new File("C:\\Users\\xvwan\\Desktop\\杂项\\自学练手\\level_1\\src\\main\\java\\my\\learning\\level_1\\day4"); //绝对路径
        File file1 = new File("src\\main\\java\\my\\learning\\level_1\\day4"); //相对路径,以项目根目录开始
        System.out.println(file);
        /*获取文件名*/
        String name = file.getName();
        System.out.println(name);
        /*获取文件绝对路径*/
        String absolutePath = file1.getAbsolutePath();
        System.out.println(absolutePath);
        /*length*/
        long length = file1.length();  //文件夹大小为0
        System.out.println(length);
        /*isFile()此File表示的是否为文件*/
        boolean isFile = file1.isFile();
        System.out.println(isFile);
        /* isDirectory() :此File表示的是否为目录*/
        boolean isDirectory = file1.isDirectory();
        System.out.println(isDirectory);

用File类遍历文件小例子

*遍历文件*/
public class Research {
    public static void main(String[] args) {
        research("src\\main\\java\\my\\learning\\level_1\\day4");
    }

    private static void research(String filePath) {
        File file=new File(filePath);
        File[] files = file.listFiles();
        for (File file1 : files) {
            if (file1.isDirectory()){
                System.out.println(file1.getName());
                research(file1.toString());
            }else {
                System.out.println(file1.getName());
            }
        }
    }
}

IO流,FileOutputStream和FileInputStream

    /*文件输出流写文件, 文件不存在会自动创建*/
        FileOutputStream fos = new FileOutputStream("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt");
        fos.write("你好,hello word!  \r\n我换行了".getBytes());
        fos.close();
        /*文件输入流读文件*/
        FileInputStream fis = new FileInputStream("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt");
        int read=0;
        byte[] buf=new byte[1024];
        StringBuilder sb=new StringBuilder();
        while( (read = fis.read(buf)) !=-1){
//            System.out.println(new String(buf,0,read));
            sb.append(new String(buf,0,read));
        }
        fis.close();
        System.out.println(sb.toString());
       
 /*使用BufferedInputStream提高效率*/
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt"));
        while( (read=bis.read(buf)) !=-1 ){
            System.out.println(new String(buf));
        }
        bis.close();
 BufferedReader br=new BufferedReader(new FileReader("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt"));
        String line=null;
        while( (line=br.readLine()) !=null ){
            System.out.println(line);
        }

文件IO流小练习,复制文件

    public static void main(String[] args) {
        String readPath="src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt";
        String writePath="src\\main\\java\\my\\learning\\level_1\\day4\\File\\test_copy.txt";
        try {
            cpoy(readPath,writePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void cpoy(String readPath,String writePath) throws IOException {
        /*读出文件信息,存入StringBuilder*/
        FileInputStream fis = new FileInputStream(readPath);
        byte[] buf = new byte[1024];
        int read = 0;
        StringBuilder sb = new StringBuilder();
        while ((read = fis.read(buf)) != -1) {
            sb.append(new String(buf, 0, read));
        }
        fis.close();
        /*将StringBuilder里的消息装换成byte[]存入目的文件*/
        FileOutputStream fos=new FileOutputStream(writePath);
        fos.write(sb.toString().getBytes());
        fos.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值