什么是从文本/数据文件中读取数据的最佳方法

问题描述:

package mp1similar; 

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.StringTokenizer; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class MP1Similar 
{ 

private static ArrayList arrayList ; 

public static void main(String[] args) 
{ 
ArrayList arrayList= null; 
    try 
    { 
    BufferedReader br = new BufferedReader(new FileReader("data/Catalog.txt")); 

    String line=""; 
    arrayList =new ArrayList(); 
    while((line = br.readLine())!=null) 
     { 
     // System.out.println(line); 
     StringTokenizer st = new StringTokenizer(line); 
     while(st.hasMoreTokens()) 
      { 
      //System.out.println(st.nextToken()); 
      arrayList.add(st.nextToken()); 
      System.out.println(br.readLine()); 
      } 
     } 
    } 

    catch (FileNotFoundException ex) 
    { 
     System.out.println(ex.getMessage()); 
     ex.printStackTrace(); 
    } 
catch (IOException ex) 
    { 
      System.out.println(ex.getMessage()); 
      ex.printStackTrace(); 
    } 

} 

} 

我试图将数据从TXT文件传递给对象数组。该TXT FIL elooks是这样的:什么是从文本/数据文件中读取数据的最佳方法

4950331 HIST 37.5 121.5 --- AS - 5.2 1.0

8270000 HIST 51.10 12.80 ---欧盟 - 4.8 1.0

的数据是由空白的分隔。所有内容都必须传输到对象。

+0

而你的问题是什么? – 2012-02-05 21:25:56

+0

什么是问题,什么不起作用? – stryba 2012-02-05 21:26:23

+0

这是我给出的代码。我是java的新手,所以我的问题是: - 我们是否将所有数据传输给Arraylist?如何以有组织的方式检索所有数据(将其显示在屏幕上或打印到另一个文件中)。第一列是日期,第二列是其他内容等等。 – 2012-02-05 21:29:45

这将打印在ArrayList中的一切到屏幕上:

for(int i=0;i< arrayList.size();i++){ 
     System.out.println(arrayList.get(i)); 
    } 

我强烈建议使用Apache commons-io包中的FileUtils.readFileToString()。不要重新发明轮子,只使用图书馆。

+0

谢谢,让我研究一下 – 2012-02-05 21:50:41

+0

[FileUtils.readLines()](http://commons.apache.org/io/apidocs/org/apache/commons/io/ FileUtils.html#readLines(java.io.File))在这种情况下可能更合适。 – 2012-02-05 21:54:05

+0

当我尝试导入org.apache.commons.io.FileUtils;我收到一个错误,表示软件包不存在 – 2012-02-05 22:05:23