复制文件到指定文件夹并修改其指定位置数据
//import java.io.*;
public static void main(String[] args) {
//源文件
String sourceFile = "E:\\ss\\index.html";
//目标文件夹
String destinationFolder = "E:\\destination";
// 需要替换的行号
int lineNumber = 11;
// 新的内容
String newContent = "测试修改内容";
try {
//创建文件夹
File directory = new File(destinationFolder);
if (!directory.exists()){
directory.mkdir();
}
//复制文件
File file = new File(sourceFile);
FileInputStream fis = new FileInputStream(file);
File newFile = new File(destinationFolder, file.getName());
FileOutputStream fos = new FileOutputStream(newFile);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
}
fis.close();
fos.close();
System.out.println("文件复制成功!");
StringBuilder fileContent = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(newFile))) {
String line;
while ((line = reader.readLine()) != null) {
fileContent.append(line).append(System.lineSeparator());
}
} catch (IOException e) {
e.printStackTrace();
}
// 查找需要替换的行,并将其修改为新的内容
String[] lines = fileContent.toString().split(System.lineSeparator());
if (lineNumber >= 1 && lineNumber <= lines.length) {
lines[lineNumber - 1] = newContent;
} else {
System.out.println("Invalid line number.");
}
// 将修改后的内容写入文件
try (BufferedWriter writer = new BufferedWriter(new FileWriter(newFile))) {
for (String line : lines) {
writer.write(line);
writer.write(System.lineSeparator());
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}