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