OK.first 我意识到 readAll() 将标记化的字符串从 0 保存在数组索引中,直到它看到换行符(csv 文件的下一行)并从 0 重新开始。我希望将标记化的字符串保存在一个连续的数组中。
import au.com.bytecode.opencsv.CSVReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
public class ReadTest {
private static String data0 = "U:\\test-csv1.csv";
private static String [] longArray = new String[50];
private static String[] aString;
private static List<String> longStr = new java.util.ArrayList<String>();
private static int arrayCtr = 0;
private static void copyArray(String aTemp){
longStr.add(arrayCtr, aTemp);
System.out.println(arrayCtr);
arrayCtr++;
}
private static void printElements(){
for(int no =15;no<= 25;no++)
System.out.print("\nelNo "+no+" is: "+longStr.get(no));
System.out.println();
}
public static void main(String[] args) throws IOException {
CSVReader reader1 = new CSVReader(new FileReader(data0),';');
List aList;
while ((aList = reader1.readAll())!= null){
int outer= 0;
String aTemp;
String [] longArray = new String[50];
所以在这里我做了一个循环来复制要复制到一个名为 longStr 的列表中的标记化字符串。
for (int counter= 0;counter <aList.size();counter++){
String [] tempStr = (String[]) aList.get(counter);
for (int j = 0; j < tempStr.length; j++){
aTemp = tempStr[j];
copyArray(aTemp);
// System.out.print(tempStr[j]);
// System.out.println();
System.out.print("strNo: " + j+"="+tempStr[j] + " "+"\n");
System.out.print("TEMP="+aTemp+"\n");
}
这是获取行数的计数器。
System.out.println("loop for no. of element:"+(++outer));
System.out.println();
printElements();
}
printElements 是一种列出 longStr 中元素的方法。
我在列出 longStr 中的所有元素时遇到问题。这就是我到目前为止所拥有的,我尝试将 readAll() 中的标记化字符串排列到 longStr 中的连续数组中。当我在 readAll() 完成读取 csv 文件后尝试打印出元素时,它会连续打印来自 printElements() 的元素,即不间断。我该如何解决这个问题,我可以将 printElements() 放在while
哪里?如果我把它放在其他地方,我总是会得到像 indexoutofbound 这样的错误。