Java文件操作

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) {
        }
    }
}

读取文件内容

使用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
*/

删除文件

使用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 文件已被删除!
*/

文件内容拷贝

先使用 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();
    }
}

文件追加数据

使用 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
*/

创建临时文件

使用 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();
    }
}

修改文件的修改日期

使用 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
*/

获取文件修改时间

使用 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);
    }
}

获取文件大小

使用 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
 */

文件重命名

使用 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");
        }
    }
}

设置文件只读

使用 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());
    }
}

检测文件是否存在

使用**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());
    }
}

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();
        }
    }
}

你可能感兴趣的:(Java)