创建从文件中读取的Java程序

时间:2014-03-03 03:38:36

标签: java

我的任务如下:创建Java程序,从文件读取每行创建一个人对象,并将对象存储在集合中,按对应名称排序对象。这是我到目前为止它编译得很好,但它没有打印任何东西。这就是我到目前为止所拥有的

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileTester {
    public static void main(String[] args) {
       File testFile;
       Scanner fileScanner;

       try {

             testFile = new File("sample.txt");

             fileScanner = new Scanner(testFile);   
             fileScanner.useDelimiter(",");


             while (fileScanner.hasNext()) {            
                  System.out.println(fileScanner.next());       
             }

             fileScanner.close();

      }  catch (FileNotFoundException e) {          
             e.printStackTrace();
      }

   }
}

3 个答案:

答案 0 :(得分:0)

如果是文本文件,请使用BufferedReader。然后使用String#split()获取数据。必要时实例化。

BufferedReader reader = new BufferedReader(...);
String line = null;
while( (line = reader.readLine()) != null){
  // magic
}

答案 1 :(得分:0)

我不知道你想做什么。但是这个程序采用一个名为“sample.txt”的文件并将其分成标记。例如,如果在txt中是“carlos,jose,herrera,matos”你编程

卡洛斯
何塞
埃雷拉
马托斯

现在,如果要对此进行排序,则必须创建一个Person类并实现Comparable

答案 2 :(得分:0)

试试这个,

BufferedReader bufferedReader = new BufferedReader(new FileReader(new File(fileName)));
    String content = null;

    while((content = bufferedReader.readLine()) != null)
    {
        String[] details = content.split(",");

        int i = 1;
        for(String value : details)
        {
            switch(i)
            {
                case 1:
                {
                    System.out.println("Name : "+value);
                    i=2;
                    break;
                }
                case 2:
                {
                    System.out.println("Address : "+value);
                    i=3;
                    break;
                }
                case 3:
                {
                    System.out.println("Number : "+value);
                    i = 1;
                    break;
                }
            }
        }
    }