我想知道java中是否有选项可以从特定路径读取文件,即C:\test1.txt
更改内存中文件的内容并将其复制到D:\test2.txt
,同时{{1}的内容不会更改,但受影响的文件将为C:\test1.txt
由于
答案 0 :(得分:1)
作为基本解决方案,您可以从一个FileInputStream
中读取数据并写入FileOutputStream
:
import java.io.*;
class Test {
public static void main(String[] _) throws Exception{
FileInputStream inFile = new FileInputStream("test1.txt");
FileOutputStream outFile = new FileOutputStream("test2.txt");
byte[] buffer = new byte[128];
int count;
while (-1 != (count = inFile.read(buffer))) {
// Dumb example
for (int i = 0; i < count; ++i) {
buffer[i] = (byte) Character.toUpperCase(buffer[i]);
}
outFile.write(buffer, 0, count);
}
inFile.close();
outFile.close();
}
}
如果您明确要将整个文件放在内存中,您也可以使用DataInputStream
将输入包装在File.length()
中并使用readFully(byte[])来计算文件的大小。< / p>
答案 1 :(得分:0)
我认为,最简单的方法是使用Scanner class来读取文件,然后使用writer编写。
Here are some nice examples用于不同的java版本。
或者,您也可以使用apache commons lib来读/写/复制文件。
public static void main(String args[]) throws IOException {
//absolute path for source file to be copied
String source = "C:/sample.txt";
//directory where file will be copied
String target ="C:/Test/";
//name of source file
File sourceFile = new File(source);
String name = sourceFile.getName();
File targetFile = new File(target+name);
System.out.println("Copying file : " + sourceFile.getName() +" from Java Program");
//copy file from one location to other
FileUtils.copyFile(sourceFile, targetFile);
System.out.println("copying of file from Java program is completed");
}