【发布时间】:2016-05-14 05:25:07
【问题描述】:
我目前正在进行一个项目,我的目标是编写一个ArrayList,将String、Integer、ArrayList、Date 等不同的变量保存到txt 文件中。
我该怎么做呢?我尝试使用PrintWriter 并且只使用.toString(),但这只是返回了所有ArrayLists 地址,例如ArrayList@1d34gh。
如何让它打印出每个单独的实体?
这是我最近的代码(在实现此处给出的答案之后):
public void writeToFile(String fileName) throws FileNotFoundException {
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
for (Tweet t : tweets) {
if (t.getAuthor() instanceof String) {
pw.println("Tweet Author: @" + t.getAuthor());
}
else if (t.getDate() instanceof Date) {
pw.println("Tweet Date: " + t.getDate());
}
else if (t.getTweetID() instanceof Long) {
pw.println("Tweet ID: " + String.valueOf(t.getTweetID()));
}
else if (t.getTweetContent() instanceof String) {
pw.println("Tweet Content: " + t.getTweetContent());
}
else if (t.getLikes() instanceof int) {
pw.println("No. of Likes: " + t.getLikes());
}
else if (t.getRetweets() instanceof int) {
pw.println("No. of Retweets: " + t.getRetweets());
}
else if (t.getOriginalUser() instanceof String) {
pw.println("Username of Original Username: " + t.getOriginalUser());
}
else if (t.getRetweeters() instanceof ArrayList<String>) {
for(String str : t.getRetweeters()){
pw.write("Retweeter Usernames: " + str);
}
}
pw.close();
}
我正在尝试执行 int 变量,但它们不允许我执行 instanceOf int 或 Integer 并且我不确定为什么当喜欢和转发是 int 时。
当我使用int 执行此操作时,它返回错误:Syntax error, insert "Dimensions" to complete ArrayType
当我使用 Integer 执行 instanceOf 时,它返回错误:Incompatible conditional operand types int and Integer.
我该如何解决这个问题?
【问题讨论】:
-
可以添加一些代码吗?
-
您可能会遇到嵌套列表等问题,因此您可以将列表转换为 JSON(使用映射器库之一)并将该 JSON 写入文件。或者看看像 Apache Commons Lang 等库,它们应该提供一些很好的实用程序来打印任意对象层次结构。
标签: java text arraylist io printwriter