在Java中进行文件操作:读写、复制、删除等实例
在Java中,我们可以使用java.io
包下的类来进行文件的操作。下面是一些常见的操作示例:
- 读写文件:
```java
import java.io.File;
import java.io.IOException;
// 写入文件
try (FileWriter writer = new FileWriter(“example.txt”)) {
writer.write(“Hello, World!”);
}
// 读取文件
try (FileReader reader = new FileReader(“example.txt”)) {
String content = new String(reader.read());
System.out.println(content); // 输出 “Hello, World!”
}
2. **复制文件**:
```java
import java.io.File;
import java.io.IOException;
public class FileCopyExample {
public static void main(String[] args) {
// 源文件
File sourceFile = new File("source.txt");
// 目标文件
File destinationFile = new File("destination.txt");
// 复制文件
try {
copyFile(sourceFile, destinationFile);
System.out.println("File copied successfully.");
} catch (IOException e) {
System.err.println("Error occurred while copying file: " + e.getMessage());
}
}
private static void copyFile(File sourceFile, File destinationFile) throws IOException {
// 检查源文件是否存在
if (!sourceFile.exists()) {
throw new FileNotFoundException("Source file does not exist.");
}
// 检查目标文件是否存在并可写
if (destinationFile.exists() && !destinationFile.canWrite())) {
throw new IllegalAccessException("Destination file exists and cannot be written by the current user.");
}
// 复制文件
FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(destinationFile);
byte[] buffer = new byte[1024]; // 读写缓冲区大小
while (true) {
int readSize = fis.read(buffer); // 读取数据
if (readSize == -1) { // 如果读取完毕
break;
} else if (readSize == 0) { // 如果读取到空数据
fos.write(buffer, 0)); // 写回缓冲区起始位置的数据
continue; // 继续循环,下一次再尝试读取
}
fos.write(buffer, 0), readSize); // 写入目标文件
}
fis.close(); // 关闭输入流
fos.close(); // 关闭输出流
}
}
- 删除文件:
```java
import java.io.File;
public class FileDeleteExample {
public static void main(String[] args) {
// 文件对象
File file = new File(“example.txt”);
// 删除文件
if (file.delete()) {
System.out.println("File deleted successfully.");
} else {
System.err.println("Failed to delete the file. Reason: " + file.delete()));
}
}
}
```
以上就是Java中进行文件操作的一些实例。
还没有评论,来说两句吧...