将包含不同变量的ArrayList写入.txt文件

时间:2016-02-04 14:32:56

标签: java text arraylist io printwriter

我目前正在进行一个项目,我的目标是编写一个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而且我不确定为什么喜欢&amp;转推属于int

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

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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

这样的事情可能就是这样:

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()方法。

答案 1 :(得分:0)

你需要在循环中迭代你的列表并将每个值都放到你的文件中。但是在将值放到文件make String.valueOf(value)

之前

这似乎是这样的:

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