Java文件操作: 10个函数来读写和处理文件
Java是一门面向对象的编程语言,其提供丰富的API,其中包括文件操作API。在Java程序中,我们可以使用这些API来读、写、复制、移动和删除文件。在本文中,我们将介绍10个常用的Java文件操作函数。
1. File类
Java中使用File类来操作文件和目录。File类提供了很多方法来操作文件和目录,如创建文件、删除文件、重命名文件、判断文件是否存在等等。下面是File类的一些常用方法:
//创建文件
File file = new File("file.txt");
file.createNewFile();
//删除文件
File file = new File("file.txt");
file.delete();
//重命名文件
File file = new File("file.txt");
File newFile = new File("newfile.txt");
file.renameTo(newFile);
//判断文件是否存在
File file = new File("file.txt");
if (file.exists()) {
//文件存在
}
2. FileWriter类
FileWriter是用于写入字符流的便捷类。它的构造方法可以指定文件名,也可以指定File对象。下面是FileWriter的一些常用方法:
Writer writer = new FileWriter("file.txt");
//写入单个字符
writer.write('a');
//写入字符串
writer.write("Hello World");
//写入字符串指定位置和长度
writer.write("Hello World", 0, 5);
//刷新缓冲
writer.flush();
//关闭流
writer.close();
3. FileReader类
FileReader是用于读取字符流的便捷类。它的构造方法可以指定文件名,也可以指定File对象。下面是FileReader的一些常用方法:
Reader reader = new FileReader("file.txt");
//读取单个字符
int c = reader.read();
//读取字符数组
char[] buffer = new char[1024];
int len;
while ((len = reader.read(buffer)) != -1) {
//处理读取到的数据
}
//关闭流
reader.close();
4. BufferedReader类
BufferedReader是读取文本的缓冲输入流,它的构造方法需要传入一个Reader对象,可以使用FileReader来创建。BufferedReader提供的方法可以读取整行文本,也可以按字符或者字节读取文本。以下是BufferedReader的一些常用方法:
Reader reader = new FileReader("file.txt");
BufferedReader bufferedReader = new BufferedReader(reader);
//按行读取文本
String line;
while ((line = bufferedReader.readLine()) != null) {
//处理读取到的行文本
}
//关闭流
bufferedReader.close();
5. BufferedWriter类
BufferedWriter是写入文本的缓冲输出流,它的构造方法需要传入一个Writer对象,可以使用FileWriter来创建。BufferedWriter提供的方法可以写入整行文本,也可以按字符或者字节写入文本。以下是BufferedWriter的一些常用方法:
Writer writer = new FileWriter("file.txt");
BufferedWriter bufferedWriter = new BufferedWriter(writer);
//写入一行文本
bufferedWriter.write("Hello World");
//写入字符串
bufferedWriter.write("Hello World", 0, 5);
//刷新缓冲
bufferedWriter.flush();
//关闭流
bufferedWriter.close();
6. FileInputStream类
FileInputStream是用于读取二进制流的便捷类,它的构造方法可以指定文件名,也可以指定File对象。下面是FileInputStream的一些常用方法:
InputStream inputStream = new FileInputStream("file.bin");
//读取单个字节
int b = inputStream.read();
//读取字节数组
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
//处理读取到的数据
}
//关闭流
inputStream.close();
7. FileOutputStream类
FileOutputStream是用于写入二进制流的便捷类,它的构造方法可以指定文件名,也可以指定File对象。下面是FileOutputStream的一些常用方法:
OutputStream outputStream = new FileOutputStream("file.bin");
//写入单个字节
outputStream.write(0x41);
//写入字节数组
byte[] buffer = new byte[]{0x41, 0x42, 0x43};
outputStream.write(buffer);
//刷新缓冲
outputStream.flush();
//关闭流
outputStream.close();
8. ByteArrayInputStream类
ByteArrayInputStream是用于从字节数组中读取数据的便捷类。以下是ByteArrayInputStream的一些常用方法:
byte[] buffer = new byte[]{0x41, 0x42, 0x43};
InputStream inputStream = new ByteArrayInputStream(buffer);
//读取单个字节
int b = inputStream.read();
//读取字节数组
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
//处理读取到的数据
}
//关闭流
inputStream.close();
9. ByteArrayOutputStream类
ByteArrayOutputStream是用于写入数据到字节数组中的便捷类。以下是ByteArrayOutputStream的一些常用方法:
OutputStream outputStream = new ByteArrayOutputStream();
//写入单个字节
outputStream.write(0x41);
//写入字节数组
byte[] buffer = new byte[]{0x41, 0x42, 0x43};
outputStream.write(buffer);
//获取字节数组
byte[] result = outputStream.toByteArray();
//关闭流
outputStream.close();
10. RandomAccessFile类
RandomAccessFile是Java中用于访问文件的工具类,它能够随机访问文件中的任意位置。它的构造方法可以指定文件名,也可以指定File对象。以下是RandomAccessFile的一些常用方法:
RandomAccessFile randomAccessFile = new RandomAccessFile("file.txt", "rw");
//读取单个字符
char c = randomAccessFile.readChar();
//读取字节数组
byte[] buffer = new byte[1024];
randomAccessFile.read(buffer);
//写入单个字节
randomAccessFile.writeByte(0x41);
//写入字节数组
byte[] buffer = new byte[]{0x41, 0x42, 0x43};
randomAccessFile.write(buffer);
//关闭流
randomAccessFile.close();
总结
以上这些函数是Java文件操作中比较常用的,通过它们我们可以读写文件,处理文件,实现复制、移动和删除文件等操作。需要注意的是,在使用文件流时要确保关闭流,否则可能会导致资源泄漏和其他错误。
