我目前正在进行一个项目,我的目标是编写一个ArrayList
,其中包含String
,Integer
,ArrayList
,Date
等不同的变量到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
int
或Integer
而且我不确定为什么喜欢&amp;转推属于int
。
当我使用int
执行此操作时,会返回错误:Syntax error, insert "Dimensions" to complete ArrayType
当我使用Integer
执行instanceOf时,会返回错误:Incompatible conditional operand types int and Integer.
我该如何解决这个问题?
答案 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
...
}