欢迎访问宙启技术站
智能推送

Java文件处理函数的常用方法总结

发布时间:2023-06-10 08:34:44

在Java程序设计中,文件操作是非常基础的操作,而对于文件的操作,代码中会涉及到很多方法和函数。本文从Java文件处理函数的常用方法出发,总结了常用的Java文件处理函数方法,以及使用方法和注意事项,供读者参考。

1. 创建文件,删除文件,文件重命名

Java中的文件类提供了很多方法来操作文件,如createNewFile()、delete()、renameTo()等。以createNewFile()为例,该方法参数为文件路径和文件名,用于创建新文件。

代码示例:

import java.io.File;
public class CreateFileDemo {
   public static void main(String[] args) {
      try {
         File file = new File("C:/test.txt");
         if (file.createNewFile()){
            System.out.println("文件创建成功!");
         }else{
            System.out.println("文件已经存在。");
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

删除文件和文件夹的方法非常相似,因为文件夹可以被看成是一个文件集合。delete()只能删除单个文件或空目录,如果文件夹不为空,或者需要删除包含子目录和文件的文件夹,则需要使用FileUtils类或通过递归自行实现。

代码示例:

file.delete(); 

重命名文件可以使用renameTo()函数,该函数接受一个File类型参数,如下所示:

 public boolean renameTo(File dest)

其中dest参数是新文件名对象的使用。如果重命名成功则返回true,否则返回false,一般情况下,重命名后的新文件名是在原来的文件名基础上加上一些后缀,如:.bak、.bk、.temp等。

代码示例:

File file = new File("testfile.txt");
File file2 = new File("newfile.txt");
file.renameTo(file2);

2. 打开文件

在Java中打开文件最经典的方法就是使用BufferedReader或FileReader来打开文件,其中FileReader是BufferedReader的子类,用于逐行读取文本文件,如果需要读入非文本文件,可以使用FileInputStream类,它可以从指定文件读取文件的原始数据。

代码示例:

BufferedReader reader = null;
try {
    reader = new BufferedReader(new FileReader("filename.txt"));
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if (reader != null) {
            reader.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

3. 写入文件

Java的I/O中,写入文件也是一个常见的操作。当需要写入文件的时候,可以使用FileWriter或BufferedWriter函数,用于将文本写入到文件中。

代码示例:

String data = "Hello World!";
BufferedWriter writer = null;
try {
    writer = new BufferedWriter(new FileWriter("filename.txt"));
    writer.write(data);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if (writer != null) {
            writer.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

4. 读写二进制文件

读写二进制文件也是程序设计中常见的操作,常用的有DataInputStream和DataOutputStream类,可以通过这两个类将数据以二进制形式读写到文件中。

代码示例:

public class BinaryFileUtil {

    private BinaryFileUtil() {    }

    public static void writeBinaryFile(String fileName, byte[] data) throws IOException {
        try (OutputStream outputStream = new FileOutputStream(fileName)) {
            outputStream.write(data);
        }
    }

    public static byte[] readBinaryFile(String fileName) throws IOException {
        File file = new File(fileName);
        byte[] buffer = new byte[(int) file.length()];
        try (DataInputStream inputStream = new DataInputStream(new FileInputStream(file))) {
            inputStream.readFully(buffer);
        }
        return buffer;
    }
}

5. 读写CSV文件

在实际的项目开发中,CSV文件是经常遇到的一种数据格式,它以逗号为分隔符,每一行作为一个记录。对于读写CSV文件,可以使用OpenCSV库,它提供了很多读写CSV文件的API,包括将CSV文件写成成一个JavaBean列表,也可以读取CSV文件到JavaBean中。

代码示例:

public class CSVUtil {

    private static final char DEFAULT_SEPARATOR = ',';

    public static List<MyBean> readBeansFromCsv(String filename) throws Exception {
        List<MyBean> beans = new ArrayList<>();
        try (CSVReader reader = new CSVReader(new FileReader(filename))) {
            String[] line;
            while ((line = reader.readNext()) != null) {
                MyBean bean = new MyBean();
                bean.setField1(line[0]);
                bean.setField2(line[1]);
                // ...
                beans.add(bean);
            }
        }
        return beans;
    }

    public static void writeBeansToCsv(String filename, List<MyBean> beans) throws Exception {
        try (CSVWriter writer = new CSVWriter(new FileWriter(filename), DEFAULT_SEPARATOR,
                CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.DEFAULT_ESCAPE_CHARACTER, CSVWriter.DEFAULT_LINE_END)) {
            for (MyBean bean : beans) {
                String[] fields = new String[] {
                        bean.getField1(),
                        bean.getField2(),
                        // ...
                };
                writer.writeNext(fields);
            }
        }
    }
}

以上就是Java文件处理函数的常用方法总结。除了上述内容之外,还有很多其他的文件操作方式,如文件夹操作、文件压缩、文件加密等。在实际操作中,需要根据自己的需求选择不同的方法实现。