簡體   English   中英

FileWriter不寫入文本文件(java)

[英]FileWriter not writing to text file (java)

一旦用戶輸入了一些數據,我試圖將一些變量寫入文本文件。 我以前曾經使用過它,但是現在我正在修補它,現在它根本不寫入文本文件。 這是代碼:

try (PrintWriter out = new PrintWriter(new BufferedWriter(
            new FileWriter("C:\\Users\\A612646\\workspace\\CarParkProject\\PrePaid.txt", true)))) {
        if (AmountofHours < 0 || AmountofHours > 24) {
            out.print(RegNo);
            out.print("\t" + AmountofHours);
            out.print("\t" + CreditCardNo);
            out.print("\t" + expiry);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

您確定行:

if (AmountofHours < 0 || AmountofHours > 24)

不該是

if (AmountofHours > 0 && AmountofHours < 24)

您是說如果汽車停放時間少於0小時或超過24小時,請寫一條線。 我想您打算說的是,如果汽車停放時間超過0小時且少於24小時...

代碼沒有錯! 此代碼將數據寫入文本文件。 確保您的邏輯正確,如willow512所建議。 我建議您調試代碼以縮小原因。

public class TestFile {

public static void main(String[] args) {
    int AmountofHours = 25;
    int RegNo = 52431;
    String CreditCardNo = "5315-XXXX-1456-XXXX";
    String expiry = "15/25";
    try (PrintWriter out = new PrintWriter(new BufferedWriter(
         new FileWriter("C:\\Users\\thanigaiarasur\\workspace\\ExploreThings\\PrePaid.txt", true)))) {
        if (AmountofHours < 0 || AmountofHours > 24) {
            out.print(RegNo);
            out.print("\t" + AmountofHours);
            out.print("\t" + CreditCardNo);
            out.print("\t" + expiry);

            System.out.println("printed successfully");
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

}

}

看起來您正在打開Filewriter,而不是File本身。

嘗試這個:

File file = new File("C:\\Users\\A612646\\workspace\\CarParkProject\\PrePaid.txt");
    if (!file.exists()) 
        file.createNewFile(); //this creates the file :)

FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);

bw.write("content to write"); //here you will write you stuff
bw.close();

暫無
暫無

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

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