从txt文件中删除第一行时遇到问题

时间:2014-04-05 14:47:54

标签: java bufferedreader bufferedwriter

我知道这是非常基本的东西,但出于某种原因,我遇到了bufferedReader / Writer的问题。我想获取第一行文本并将其返回到另一个方法。但是,出于某种原因,作者似乎没有写入临时文件,也没有改变临时文件的名称。

通过抛出一些印刷语句,我能够弄明白:

  1. while循环正常运行
  2. if else语句正常运行
  3. tempFile未正确写入文本文件
  4. tempFile未正确重命名
  5. 没有抛出错误

    private static String wavFinder()抛出IOException {

        String currentWav=null;
        int x = 1;
        File inputFile = new File("C:\\convoLists/unTranscribed.txt");
        File tempFile = new File("C:\\convoLists/unTranscribedtemp.txt");
        BufferedReader reader = new BufferedReader(new FileReader(inputFile));
        BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
        String currentLine = null;
    
        while((currentLine = reader.readLine()) != null) {
            if(x == 1){
                currentWav = currentLine;
            }
            else{
            writer.write(currentLine);
            }
            x = 2;
        }
        boolean successful = tempFile.renameTo(inputFile);      
        System.out.println("Success: " + successful);
        System.out.println("currentWav = " + currentWav);
        return currentWav;
    }
    
  6. 这是我正在使用的方法。如果您发现任何问题,请告诉我,如果您有任何疑问,我一定会尽快回答。谢谢:))

3 个答案:

答案 0 :(得分:0)

在尝试拨打renameTo之前关闭缓冲区。

reader.close()
writer.close()

答案 1 :(得分:0)

  1. 首先冲洗蒸汽(作者)并关闭它们。
  2. 您不能拥有两个同名文件。您正尝试使用输入文件重命名临时文件。您需要删除输入文件,然后将其重命名为该文件。

    reader.close(); writer.flush(); writer.close(); inputFile.delete();

  3. 在重命名之前添加这些行,它将起作用

答案 2 :(得分:0)

文件inputFile = new File(“C:\ convoLists / unTranscribed.txt”); 文件tempFile =新文件(“C:\ convoLists / unTranscribedtete.txt”);

为什么你有不同的路径标志?

总是应该是//.