我正在尝试打印我用来存储字符串数组的arraylist的内容。基本上,我正在尝试编写一个逐行读取文件的程序,并将各行作为单独的字符串数组存储在arraylist中。我想通过在arraylist中打印字符串数组来检查它是否有效,但目前我的代码只打印地址。它看起来如下:
package Filecheck;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
public class FileImport {
public static void main(String [] args) {
// The name of the file to open.
String fileName = "/Users/Frank/Desktop/test.rtf";
String line;
String[] name = null;
ArrayList<String[]> list = new ArrayList<String[]>();
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader readerB = new BufferedReader(fileReader);
line = readerB.readLine();
while((line = readerB.readLine()) != null) {
System.out.println(line);
name = line.split(" ");
list.add(name);
}
for (int i=0; i < list.size(); i++){
System.out.println(list.get(0).toString());
}
readerB.close();
}
catch(FileNotFoundException ex) {
System.out.println(
"Unable to open file '" +
fileName + "'");
}
catch(IOException ex) {
System.out.println(
"Error reading file '"
+ fileName + "'");
}
}
}
代码的输出如下:
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\f0\fs24 \cf0 \
Test String The pens are going to win the cup\
Another Test}
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
一些简单的选择。有很多方法可以做到这一点,我无法涵盖所有这些方法。
1)考虑是否需要存储String
数组列表,而只是存储字符串列表。
2)创建自己的打印数组函数,并在迭代数组时为每个元素调用该函数。该函数的示例实现可以是
public void printArray(T[] array) {
for(T item : array) System.out.println(item);
}
3)将数组或字符串转换为字符串列表