주어진 디렉토리에 방금 작성된 파일에 쓰는 데 BufferedWriter
이 있는데, 어떤 이유로 다른 사람이 읽는 텍스트를 쓰지 않습니다BufferedWriter가 텍스트 파일에 텍스트를 쓰지 않습니다.
private static final String tempFileDir = System.getProperty("user.dir") + "/TempATM.txt";
File tempFile = new File(tempFileDir); //Create temporary file to write new info to
File toRenameTo = new File("VirtualATM.txt"); //filename to rename temp file to
if (!tempFile.exists() && !tempFile.isDirectory()) {
tempFile.createNewFile(); //Create temp file if it doesn't already exist.
}
FileOutputStream fos = new FileOutputStream(tempFile, true); //For writing new balance
Writer bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF8"));//For writing new balance
String newLineRead = null;
FileReader fileReader = new FileReader("VirtualATM.txt");//for reading from file
BufferedReader newBufferedReader = new BufferedReader(fileReader);//for reading from file
while((newLineRead = newBufferedReader.readLine()) != null){
if(!newLineRead.contains(cardNumberStr)){
bw.append(newLineRead); //If the line does not contain user entered card number, write line to new file.
((BufferedWriter) bw).newLine();
}else if(newLineRead.contains(cardNumberStr)){
bw.append(newAccountDetails); //Write updated account details if the line read contains users account number
((BufferedWriter) bw).newLine();
}
}
File toDeleteFile = new File("dirToWriteFile"); //File path to delete the file.
if(!toDeleteFile.delete()){
JOptionPane.showMessageDialog(null, "FATAL ERROR! Could not delete VirtualATM.txt", "Error", JOptionPane.ERROR_MESSAGE); // for if there is an error when deleting file
}
if(!file.renameTo(toRenameTo)){
JOptionPane.showMessageDialog(null, "FATAL ERROR! Could not rename the file to VirtualATM.txt", "Error", JOptionPane.ERROR_MESSAGE);//for if there is an error renaming file
}
편집 :
나는 또한 어떤이 문제를 일으킬 수있는 무엇을 제안 할 수 삭제하고 텍스트 파일의 이름을 변경하는 데 문제가 있어요, 등 무엇 SecurityExceptions
을 할 수있다 파일은 여기 내 코드입니다 Java
이 (가) 삭제 및 이름 바꾸기를 방지합니다. 텍스트 파일 (.txt
)은 Windows 8.1
에 있습니까?
그렇지, 내가, 당신이 자바 7 +를 사용합니까 말해? – fge
@fge 예, 있습니다. – James
@fge 필자는 코드 끝 부분에서 수행했는데, 필자가 사용하는 코드를 선택하지 않았거나 특정 시간에 코드를 플러시해야합니까? – James