簡體   English   中英

寫入 CSV 文件,無法寫入第一行

[英]Writing to a CSV file, can't write to first line

try{
      Writer rwrite = new BufferedWriter(new FileWriter(file, true));
      rwrite.append(reservation.toString() + "\n");
      rwrite.close();
    }
    catch(IOException e){
      System.out.println("Could not open BufferedWriter.");
      e.printStackTrace();
    }

我的意思是基本上我的問題是我無法寫入空 csv 文件的第一行。 我可以寫第二個就好了。 也就是說,如果我自己手動輸入了第一行,我可以寫入第二行。

任何幫助感謝人們,真的,歡呼。 我難住了。

更新:

try{

     File file = new File("reservations.csv");
     Scanner fileIn = new Scanner(file);

    try {
        if(fileIn.hasNext()){
        PrintWriter printWriter = new PrintWriter(new FileWriter("reservations.csv", true));
        printWriter.write(reservation.toString() + "\n");
        printWriter.close();
        }

        if(!fileIn.hasNext()){


            PrintWriter printWriter = new PrintWriter(new FileWriter("reservations.csv"));
            printWriter.write(reservation.toString() + "\n");
            printWriter.close();
        } 
        } catch (IOException e) {
            System.out.println("Could not open BufferedWriter.");
            e.printStackTrace();
        }


    }
    catch(IOException e){
     System.out.println("Error: failed to read from: " + "reservations.csv");
     e.printStackTrace();
    }

我把我的代碼改成了這個,這行得通,但對我來說看起來有點像怪物哈哈。 無論如何,感謝您的幫助,並且仍然會閱讀。

嘗試這個:-

try (PrintWriter printWriter = new PrintWriter(new FileWriter(file, true))) {
            printWriter.write(reservation.toString());
        } catch (IOException e) {
            logger.error("Error encountered whilst writing the file. Error : ", e);  e.printStackTrace();
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM