簡體   English   中英

將數據保存到文本文件中

[英]Save data into a text file

public class main {

    public static void main(String[] args) {
        Ucet ucet = new Ucet();
        ucet.vlozPenize("100");
        System.out.println(ucet.ziskejPenize());
        ucet.ulozPenize();
    }
}

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Ucet {

    private File file;
    private int penize;

    public Ucet() {
        this.file = new File("ucet.txt");
        this.penize = 0;
    }

    public void ulozPenize() {
        try {
            FileWriter fileWriter = new FileWriter(file);
            fileWriter.write(penize);
            fileWriter.close();
        } catch (IOException exception) {
            exception.printStackTrace();
        }
    }

    public void vlozPenize(int penize) {
        this.penize += penize;
    }

    public int ziskejPenize() {
        return this.penize;
    }
}

當我正常啟動這段代碼時,您認為它會將“100”放入文本文件中,但它會像字符一樣輸入“d”。 有誰知道如何解決這個問題? 一種方法應輸入數據,一種方法應輸入該數據,一種方法應保存該數據。

如果要將 100 的文本表示寫入文件,則需要執行以下操作

private Integer penize;

然后在FileWritter的 write 方法中

fileWriter.write(penize.toString());

原因是您不能在write方法中將數字作為參數傳遞,您必須使用String

打印“100”的解決方法如下所示:

fileWriter.write(String.valueOf(penize));

此調用將使用帶有 String 作為參數的write方法(請參閱文檔


解釋為什么打印“d”

當您查看Java 文檔時,帶有int參數的write方法描述如下:

public void write(int c) 拋出 IOException

寫入單個字符。

覆蓋:

寫入 class 寫入器

參數:

c - int 指定要寫入的字符

這意味着它正在寫 'd' 因為 100 as char 將解析為 'd' (見這里

暫無
暫無

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

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