将具有不同变量的 ArrayList 写入 .txt 文件

Writing an ArrayList with different variables to a .txt file

我目前正在进行一个项目,我的目标是编写一个包含不同变量的 ArrayList,例如 StringIntegerArrayListDate 等到 txt 文件。

我该怎么做?我尝试使用 PrintWriter 并只是执行 .toString(),但这只会返回所有 ArrayList 的地址,例如 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 intInteger 我不确定为什么喜欢 &转推是 int.

当我使用 int 执行此操作时,它 returns 错误:Syntax error, insert "Dimensions" to complete ArrayType

当我使用 Integer 执行 instanceOf 时,它 returns 错误:Incompatible conditional operand types int and Integer.

我该如何解决这个问题?

您需要循环迭代您的列表并将每个值放入您的文件。但是在将值写入文件之前 make String.valueOf(value)

看起来像这样:

for (Object obj: list) {
     string = String.valueOf(obj);
   //put variable string in txt
    ...
}

可能是这样的:

public void writeToFile(String fileName) throws FileNotFoundException {
    PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
    for (T item : myArray) {
        if (item instanceof Character) { ... }
        else if (item instanceof Integer) { pw.println(Integer.toString(item)) }
        else if (item instanceof ArrayList<String>) { 
            for(String str: item) {
                pw.write(str);
            }
        }
       .
       .
       .
    }
        pw.close();
}

这需要工作,但是 如果您知道成员的类型,您可以检查它们并编写适当的转换 toString()。对于大多数人,您可以只使用 String.valueOf() 方法。