Java文件操作

举报
冬晨夕阳 发表于 2022/03/29 23:33:48 2022/03/29
【摘要】 Java文件操作 文件写入读取文件内容删除文件文件内容拷贝文件追加数据创建临时文件修改文件的修改日期获取文件修改时间获取文件大小文件重命名设置文件只读检测文件是否存在File类创建文件 ...


文件写入

使用 BufferedWriter类的 write() 方法向文件写入内容。
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

import java.io.*;
class Text {
    public static void main(String[] args) {
        try {
            BufferedWriter out = new BufferedWriter(new FileWriter("demolx.txt"));
            out.write("lxlxlx");
            out.close();
            System.out.println("文件创建成功!");
        } catch (IOException e) {
        }
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

读取文件内容

使用BufferedReaderreadLine() 方法来读取文件内容。

import java.io.*;
class Text {
    public static void main(String[] args) {
        try {
            BufferedReader in = new BufferedReader(new FileReader("demolx.txt"));
            String str;
            while ((str = in.readLine()) != null) {
                System.out.println(str);
            }
        } catch (IOException e) {
        }
    }
}
/* 
输出结果: lxlxlx
*/

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

删除文件

使用File类的 delete()方法对文件进行删除。
该类主要用于文件和目录的创建、文件的查找和文件的删除等。

import java.io.*;
class Text {
    public static void main(String[] args) {
        try{
            File file = new File("./demolx.txt");
            if(file.delete()){
                System.out.println(file.getName() + " 文件已被删除!");
            }else{
                System.out.println("文件删除失败!");
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
/* 
输出结果:demolx.txt 文件已被删除!
*/

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

文件内容拷贝

先使用 BufferedWriter 类的 write 方法创建一个文件写入内容,
用FileInputStream和FileOutputStream 读写文本文件,实现拷贝功能。

import java.io.*;
class Text {
    public static void main(String[] args) throws Exception {
        BufferedWriter out1 = new BufferedWriter(new FileWriter("demolx.txt"));
        out1.write("demo:\n lxacy");
        out1.close();
        InputStream in = new FileInputStream(new File("demolx.txt"));
        OutputStream out = new FileOutputStream
                (new File("other.txt"));
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();
        out.close();
        BufferedReader in1 = new BufferedReader(new FileReader("other.txt"));
        String str;
        while ((str = in1.readLine()) != null) {
            System.out.println(str);
        }
        in1.close();
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

文件追加数据

使用 filewriter 方法向文件中追加数据,参数 append 设为true实现追加。

import java.io.*;
class Text {
    public static void main(String[] args) throws Exception {
        try {
            BufferedWriter out = new BufferedWriter(new FileWriter("demolx.txt"));
            out.write("11111\n");
            out.close();
            BufferedWriter out2 = new BufferedWriter(new FileWriter("demolx.txt",append:true));
            out2.write("77777");
            out2.close();
            BufferedReader in = new BufferedReader(new FileReader("demolx.txt"));
            String str;
            while ((str = in.readLine()) != null) {
                System.out.println(str);
            }
            in.close();
        }
        catch (IOException e) {
            System.out.println("exception occoured"+ e);
        }
    }
}
/* 
输出结果:
11111
77777
*/

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

创建临时文件

使用 File 类的 createTempFile(String prefix, String suffix) 方法在默认临时目录来创建临时文件,
参数 prefix 为前缀,suffix 为后缀。

import java.io.*;
class Text {
    public static void main(String[] args) throws Exception {
        File temp = File.createTempFile("demo", ".txt");
        System.out.println("文件路径: "+temp.getAbsolutePath());
        temp.deleteOnExit();
        BufferedWriter out = new BufferedWriter(new FileWriter(temp));
        out.write("aString");
        System.out.println("临时文件已创建:");
        out.close();
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

修改文件的修改日期

使用 File 类的 fileToChange.lastModified()fileToChange setLastModified() 方法来修改文件最后的修改日期

import java.io.File;
import java.util.Date;

class Text {
    public static void main(String[] args) throws Exception {
        File fileToChange = new File("./demolx.txt");
        fileToChange.createNewFile();
        Date filetime = new Date(fileToChange.lastModified());
        System.out.println(filetime.toString());
        System.out.println(fileToChange.setLastModified(System.currentTimeMillis()));
        filetime = new Date(fileToChange.lastModified());
        System.out.println(filetime.toString());
    }
}
/* 
输出结果: 
Fri Jun 05 11:27:44 CST 2020
true
Fri Jun 05 11:27:53 CST 2020
*/

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

获取文件修改时间

使用 File 类的 file.lastModified() 方法来获取文件最后的修改时间

import java.io.File;
import java.util.Date;

class Text {
    public static void main(String[] args) {
        File file = new File("demolx.txt");
        Long lastModified = file.lastModified();
        Date date = new Date(lastModified);
        System.out.println(date);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

获取文件大小

使用 File 类的 file.exists() 判断文件是否存在 ,通过 file.length() 方法来获取文件大小。

import java.io.File;

class Text {
    public static long getFileSize(String filename) {
        File file = new File(filename);
        if (!file.exists() || !file.isFile()) {
            System.out.println("文件不存在");
            return -1;
        }
        return file.length();
    }
    public static void main(String[] args) {
        long size = getFileSize("./demolx.txt");
        System.out.println("java.txt文件大小为: " + size);
    }
}
/*
输出结果: java.txt文件大小为: 0
 */

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

文件重命名

使用 File 类的 oldName.renameTo(newName) 方法来重命名文件

import java.io.File;

class Text {
    public static void main(String[] args) {
        File oldName = new File("./demolx.txt");
        File newName = new File("./lx.txt");
        if(oldName.renameTo(newName)) {
            System.out.println("已重命名");
        } else {
            System.out.println("Error");
        }
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

设置文件只读

使用 File 类的 file.setReadOnly() 方法来设置文件只读。
使用file.canWrite() 方法验证是否可以写入。

import java.io.File;

class Text {
    public static void main(String[] args) {
        File file = new File("./lx.txt");
        System.out.println(file.setReadOnly());
        System.out.println(file.canWrite());
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

检测文件是否存在

使用**file.exists()**检查文件是否存在。

import java.io.File;

class Text {
    public static void main(String[] args) {
        File file = new File("./java.txt");
        System.out.println(file.exists());
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

File类创建文件

使用 File 类的 File() 构造函数和 file.createNewFile() 方法来创建一个新的文件。

import java.io.File;
import java.io.IOException;

class Text {
    public static void main(String[] args) {
        try{
            File file = new File("./lx.txt");
            if(file.createNewFile())
                System.out.println("文件创建成功!");
            else
                System.out.println("出错了,该文件已经存在。");
        }
        catch(IOException ioe) {
            ioe.printStackTrace();
        }
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

文章来源: blog.csdn.net,作者:考古学家lx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43582101/article/details/106565844

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。