그래서 파일에서 데이터 행을 삭제하려고합니다. 새 파일을 열고 원하는 데이터와 일치하지 않는 모든 정보를 작성하여 성공적으로 완료했습니다. 풀다. 문제는 필자가 원래 파일을 삭제 한 다음 원래 파일과 동일한 이름으로 삭제하려는 정보를 제외하고 새 파일의 이름을 바꾸고 싶습니다. 이 작업을 수행하기 위해 코드를 추가했지만 어떤 이유로 작동하지 않습니다. 이 라인은 내 원래 파일 (입력 _)를 삭제 한 다음에 나의 새로운 파일 (임시 파일)의 이름을 의미하는파일 삭제 및 이름 바꾸기
inputFile.delete();
tempFile.renameTo(inputFile);
: 당신은 하단에 볼 수있는
public static void delete() throws IOException
{
File inputFile = new File("Elements.txt");
File tempFile = new File("myTempFile.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String element = JOptionPane.showInputDialog(null, "Enter the name of the Element you wish to delete.", "Remove an Element.", JOptionPane.INFORMATION_MESSAGE);;
String currentLine;
while((currentLine = reader.readLine()) != null) {
String trimmedLine = currentLine.trim();
if(trimmedLine.startsWith(element)) continue;
writer.write(currentLine + System.getProperty("line.separator"));
}
writer.close();
reader.close();
inputFile.delete();
tempFile.renameTo(inputFile);
JOptionPane.showMessageDialog(null, "Data has been removed from the file: Elements.txt");
}
, 나는이 라인을 가지고 원래 파일에 있던 파일 이름. 그러나 코드를 실행 한 후에는 "myTempFile.txt"라는 파일을 가져 와서 원하는 데이터 행을 성공적으로 삭제했지만 원래 파일은 여전히 존재하지만 삭제되지 않았고 새 파일의 이름도 변경되지 않았습니다. 원본 파일.
왜 이런 일이 발생하는지 알고 싶습니다.
IO 예외를 어디에서 확인 하시겠습니까? 아니면 단순히 삭제 하시겠습니까? 내 생각 엔 그 삭제가 실패하고 예외를 던지고있다. – Alan