2012-07-27 110 views
1

我正处在一个编码实验的中间,一般来说一切都很顺利,直到最后一部分。我真的不知道该从哪里开始讨论这个子问题,而且这真的让我感到你不能相信。我试过的方式只能得到错误。这是一个真正的失败者,因为它之前的所有事情以及事情进展顺利之后都是如此。这只是我不知道从哪里开始,甚至在阅读了一些教程之后,我仍然遇到一些让它正常工作的重大问题。Java阅读一个txt文件

基本上,我要读此txt文件,(http://www.mediafire.com/?a6d7c0c5cdu1gup) ,并把数据转换成5门阵列(没有扫描仪)

名称已进入名称阵列,所述N/Y具有至进入Before数组,下一列数字必须进入timespent数组,下一列必须进入助手数组,最后一行必须进入风险数组。

因此,我们有5个阵列

String Name [] = new String [20) 

Char Before [] = new Char [20] 

Int timeSpent [] = new Int [20] 

Int Assistants [] = new int [20] 

Double Risk [] = new Double [20] 

因此,这些都是我做了你的5个阵列,但什么我有在读的文本文件,写它,以便相应的列进入麻烦适当的数组。

因此,任何帮助将我的代码放在一起,并将这些值放入适当的各个阵列中,以便我可以继续进行,这将非常非常感谢。非常感谢。

+2

这是一门功课的问题吗? – 2012-07-27 06:44:11

+0

你真的必须使用5个阵列吗?将用户定义类型的一个数组(或“List”)与一个人的所有详细信息结合起来会更清晰。 – 2012-07-27 06:45:59

+1

建议将未来的文本粘贴放入其中一个代码bin站点。 – nurettin 2012-07-27 06:49:46

回答

2

你可以看看this的例子,它展示了如何在不使用类Scanner的情况下遍历文件。您已经阅读了该行,您可以使用.split(String regex)将行分割为令牌。由于所有部分都用逗号分隔,因此可以使用以下代码段:line.split(",");,其中line表示刚刚从文件中读取的行。

split函数产生一个数组,因此您可以遍历它并将数据放入您选择的正确数组中。

上面应该做你所需要的。你可以,但是,看看JavaCSV这也应该帮你做你需要的东西:

Java的CSV是阅读和写作 CSV和纯分隔的文本文件小快开源Java库。

3

使用的BufferedReader用于获取一行行和使用正则表达式拆分

File file = new File("1.txt"); 
    FileReader fr = new FileReader(file); 
    BufferedReader in = new BufferedReader(fr); 
    String line; 
    while ((line = in.readLine()) != null){ 
     String[] record = line.split(",\\s*"); 
     // record[0] contain name 
     // record[1] contain N/Y etc.. 
     //* code here 

    }