读取制表符分隔文本文件java

时间:2013-08-20 09:35:30

标签: java file text tabs delimiter

10
aaa aaa aaa
bbb bbb bbb
ccc ccc ccc
ddd ddd ddd

我有一个文本文件,我试图用制表符分隔符读取。每当我读取文件时,我在10.之后得到一个arrayindexoutofbound错误。我在网上搜索,发现我必须在\ t后面加一个-1但我仍然会得到同样的错误。

 try{
        Scanner scan = new Scanner(new File("1.txt"));
        String line="";
        int readline = Integer.parseInt(scan.nextLine());//

        while (scan.hasNextLine())
        {
            line = scan.nextLine();

            if(line.equals("ccc"))
            {  
                break;
            }
        String[] split=line.split("\t");

            array.add(split);
        } 

2 个答案:

答案 0 :(得分:12)

如果您使用Scanner,则无需split,您可以在此处使用next(),如下所示

    Scanner sc=new Scanner(new FileReader("D:\\test.txt"));
    while (sc.hasNextLine()){
        System.out.println(sc.next());
    }

答案 1 :(得分:0)

这样你的代码就会失去这个丑陋的突破(休息时间大部分都是可以避免的......)

  try{
    Scanner scan = new Scanner(new File("1.txt"));
    String line="";
    int readline = Integer.parseInt(scan.nextLine());//

    while (scan.hasNextLine())
    {
        line = scan.nextLine();

        if(!line.equals("aaa")){
           String[] split=line.split("\t");
           array.add(split);
        }
    }  

关于你的问题,我认为你是用第一行的整数初始化你的数组,但它是10,你有12个元素。因此指数超出范围,但你的问题仍然不清楚......