今天我在Windows平台上尝试使用Java修改和删除文件内的数据的算法。
1st:创建一个temporaryFile 第二步:将原始文件中所需的数据写入字符串和临时文件 3rd:将temporaryFile重命名为originalFile。
import java.io.File;
import java.io.IOException;
import java.io.FileWriter;
import java.util.Scanner;
import java.io.FileNotFoundException;
public class testing{
private static String temp;
public static void main(String [] args)
{
try{
File tempFile = File.createTempFile("haha\\temporary", ".txt"); //create a temporary file in haha folder
FileWriter writer = new FileWriter(tempFile);
Scanner input = new Scanner(new File("haha\\testing.txt")); //get input from testing.txt
temp = input.next();
writer.write(temp);
writer.close();
File origFile = new File("haha\\testing.txt");
tempFile.renameTo(origFile);
}
catch ( FileNotFoundException fileNotFoundException ){}
catch(IOException ioException){}
}
}
在上面的代码中,要编辑的textFile位于文件夹名haha
内,该文件夹名称testing.class
与{{1}}一起位于另一个文件夹内。我试过这段代码无济于事, originalTextFile没有变化。
答案 0 :(得分:0)
如果您的文件位于同一目录中,则无需将路径传递给File构造函数。
Scanner input = new Scanner(new File("testing.txt"));
这应该这样做。
答案 1 :(得分:0)
您需要关闭Scanner对象才能进行更改,底层操作系统必须释放文件锁。
input.close();
File origFile = new File("haha\\testing.txt");