我知道这是非常基本的东西,但出于某种原因,我遇到了bufferedReader / Writer的问题。我想获取第一行文本并将其返回到另一个方法。但是,出于某种原因,作者似乎没有写入临时文件,也没有改变临时文件的名称。
通过抛出一些印刷语句,我能够弄明白:
没有抛出错误
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;
}
这是我正在使用的方法。如果您发现任何问题,请告诉我,如果您有任何疑问,我一定会尽快回答。谢谢:))
答案 0 :(得分:0)
在尝试拨打renameTo
之前关闭缓冲区。
reader.close()
writer.close()
答案 1 :(得分:0)
您不能拥有两个同名文件。您正尝试使用输入文件重命名临时文件。您需要删除输入文件,然后将其重命名为该文件。
reader.close();
writer.flush();
writer.close();
inputFile.delete();
在重命名之前添加这些行,它将起作用
答案 2 :(得分:0)
文件inputFile = new File(“C:\ convoLists / unTranscribed.txt”); 文件tempFile =新文件(“C:\ convoLists / unTranscribedtete.txt”);
为什么你有不同的路径标志?
总是应该是//.