从ArrayList创建顺序文本文件

时间:2015-07-23 17:48:34

标签: java arraylist

我有一个对象:

public class Game {
    int idGame;
    String teamHome;
    String teamVisit;
    int goalsHome;
    int goalsVisit;
}

构造函数:

public Game(int id, String Home, String Visit, int goalsHome, int goalsVisit){
    this.idGame = id;
    this.teamHome = Home;
    this.teamVisit = Visit;
    this.goalsHome = goalsHome;
    this.goalsVisit = goalsVisit;    
}

以及所有get / set

public int getIdGame(){
    return idGame;
}
public String getteamLocal(){
    return teamLocal;
}
public String getteamVisit(){
    return teamVisit;
}
..... etc.

我使用GUI界面捕获数据并在数组列表中创建对象

ArrayList<Game> GameList = new ArrayList();
......
Game game = new Game();
game.setteamLocal(teamLocal);
game.setteamVisita(teamVisita);
game.setgoalsLocal(goalsLocal);
game.setgoalsVisita(goalsVisita);
game.setIdGame(id);
GameList.add(Game);

到目前为止,我有ArrayList,其中包含来自不同游戏的所有数据。

我现在需要创建一个包含所有这些数据的顺序文本文件,这是我的问题。我正在尝试

FileOutputStream fos = new FileOutputStream("games.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(GameList);
oos.close();  

ArrayLists应该是Serializable,但是我可以使用它。获取java.io.NotSerializableException:....

知道如何创建文件吗?

2 个答案:

答案 0 :(得分:1)

您的游戏对象不可序列化。一旦你解决了这个问题,就可以了。

即, class Game实现了Serializable

答案 1 :(得分:0)

如果您希望它是人类可读的文本,请将对象用于xml或json解析器(Jackson)或打印管道分隔的字符串。

PrintWriter out = new PrintWriter(“games.txt”); 通过out.println(game.getXXX()+ “|”); // ... ...抓住 终于out.close