如何在文件中添加非文本?

时间:2018-02-01 13:09:09

标签: java file save

在保存游戏时,我想添加int s,String s,boolean等等,因为这是我想要保存的游戏中的所有内容。唯一的问题是,我能找到的只有how to add text to files?这里没有任何内容有助于找到如何在非文本文件中添加数字和字母。
现在,这是我的代码:

private void saveGame() {
    try {
        //Whatever the file path is.
        File statText = new File("F:/BLAISE RECOV/Java/Finished Games/BasketBall/BasketballGame_saves/Games");
        FileOutputStream is = new FileOutputStream(statText);
    } catch (IOException e) {
        System.err.println("Problem writing to the file statsTest.txt");
    }
}

2 个答案:

答案 0 :(得分:2)

您可以创建一个可序列化的对象并将您的信息保存在该对象中,并将您的文件保存为.ser可序列化文件中的对象

import java.io.Serializable;

public class Save implements Serializable
{
    private int i ; 
    private String s;
    private boolean b;
    public Save(int i, String s, boolean b)
    {
        this.i = i;
        this.s = s;
        this.b = b;
    }
    public int getI() {
        return i;
    }
    public void setI(int i) {
        this.i = i;
    }
    public String getS() {
        return s;
    }
    public void setS(String s) {
        this.s = s;
    }
    public boolean isB() {
        return b;
    }
    public void setB(boolean b) {
        this.b = b;
    }
}

你可以像这样保存对象:

public static void main(String[] args) 
{
    try
    {
        File file = new File("C:\\Users\\Parsa\\Desktop\\save.ser");
        FileOutputStream output = new FileOutputStream(file);
        ObjectOutputStream objectOutput = new ObjectOutputStream(output);
        Save save = new Save(10,"aaa",true);
        objectOutput.writeObject(save);
        objectOutput.flush();
        objectOutput.close();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

答案 1 :(得分:0)

也许你正在寻找二进制文件,就像在这里: Java: How to write binary files?

您可以将数据直接写入磁盘作为字节。 另一种方法是将整数转换为像

这样的字符
int integer = 65;    
char number = (char) integer; // outputting this will give you an 'A'
...
int loadedInt = (int) number; // loadedInt is now 65

请参阅https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html作为char-to-int转换表。

除此之外,您必须在将对象写入文件之前将其转换为字符串(或任何其他类型的串行表示形式)。