将具有不同变量的 ArrayList 写入 .txt 文件
Writing an ArrayList with different variables to a .txt file
我目前正在进行一个项目,我的目标是编写一个包含不同变量的 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
我不确定为什么喜欢 &转推是 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()
方法。
我目前正在进行一个项目,我的目标是编写一个包含不同变量的 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
我不确定为什么喜欢 &转推是 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()
方法。