0

今天我正在尝试在Windows平台上使用Java修改和删除文件内数据的算法。

第 1 步:创建临时文件 第 2 步:将 originalFile 中所需的数据写入字符串并写入到临时文件 第 3 步:将临时文件重命名为 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){}
    }
}

在上面的代码中,要编辑的文本文件位于一个文件夹名称haha中,该文件夹名称与另一个文件夹一起位于另一个文件夹中。testing.class我试过这段代码无济于事,原始文本文件没有变化。

4

2 回答 2

0

如果您的文件位于同一目录中,则无需将路径传递给 File 构造函数。

Scanner input = new Scanner(new File("testing.txt"));

这应该这样做。

于 2013-01-05T18:49:43.370 回答
0

您需要关闭 Scanner 对象才能进行更改,底层操作系统具有必须释放的文件锁。

     input.close();
     File origFile = new File("haha\\testing.txt");         
于 2013-01-05T19:09:54.180 回答