小编Jam*_*mes的帖子

为什么这段代码会导致Java写入文件中的数据?

我不确定为什么下面的代码每次都会导致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)

java bufferedwriter bufferedreader

2
推荐指数
1
解决办法
73
查看次数

为什么while循环执行无限次?

我有一个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)

java do-while

1
推荐指数
1
解决办法
149
查看次数

标签 统计

java ×2

bufferedreader ×1

bufferedwriter ×1

do-while ×1