我不确定为什么下面的代码每次都会导致Java覆盖我文件中已有的数据,而我想要它实际上是在新行上写下每个新的数据.我已经包含了相关的代码片段(我知道你可能认为变量中存在错误,但是没有,程序运行正常).有人可以帮助我理解导致这种情况的原因,是我使用文件编写器的方式吗?
String DirToWriteFile = System.getProperty("user.dir") + "/VirtualATM.txt"; //Get path to write text file to.
String Details = "Name: " + name + " CardNo: " + CardNo + " Current Balance: " + balance + " overdraft? " + OverDraft + " OverDraftLimit: " + OverDraftLimit + " pin: " + PinToWrite;
try{
//Create writer to write to files.
File file = new File(DirToWriteFile);
Writer bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8"));
// FileReader reads text files in the default …Run Code Online (Sandbox Code Playgroud) 我有一个while循环,应该读取数组的元素来尝试找到给定的值variable,但是,循环执行自己无限次,我不明白为什么.它应该在找到它正在寻找的值后退出; 我知道它确实找到它正在寻找的东西,因为它打印出I've found it!无限次.该方法的代码到目前为止是:
try{
System.out.println("Enter your card number to access your account:");
int CardNumber = sc.nextInt();
String CardNumberStr = Integer.toString(CardNumber);
boolean Exist = false;
String LineNo;
String [] CardNum = {};
int Counter;
FileReader fileReader = new FileReader("VirtualATM.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
line = bufferedReader.readLine();
CardNum = line.split("\\s+");
do{
for(Counter = 0; Counter < CardNum.length; Counter++){
LineNo = CardNum[Counter];
if(LineNo.contains(CardNumberStr)){
Exist = true;
System.out.println("I've found it!");
}
else if(Counter == CardNum.length){
Exist=false;
}
} …Run Code Online (Sandbox Code Playgroud)