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

读取制表符分隔的文本文件java,java,file,text,tabs,delimiter,Java,File,Text,Tabs,Delimiter,我有一个文本文件,我试图用制表符分隔符读取。每当我读取文件时,在10之后就会出现arrayindexoutofbound错误。我在网上搜索,发现我必须在\t后面添加一个-1,但仍然得到相同的错误 10 aaa aaa aaa bbb bbb bbb ccc ccc ccc ddd ddd ddd 这样,您的代码就失去了这种难看的中断(中断在大多数情况下是可以避免的…) 关于你的问题,我想你是在用第一行的整数初始化你的数组,但是它是10,你有12个元素。因此,索引超出范围,但您的问题仍然不清楚…

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

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

这样,您的代码就失去了这种难看的中断(中断在大多数情况下是可以避免的…)


关于你的问题,我想你是在用第一行的整数初始化你的数组,但是它是10,你有12个元素。因此,索引超出范围,但您的问题仍然不清楚…

如果您在此处使用
扫描仪
无需
拆分
,您可以在此处使用
下一步()
,如下所示

  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);
        }
    }  

你知道,
break
语句是做什么的吗?为什么要使用parseInt?这是为了从字符串中提取int值。显然,无论出于什么原因,第一行都有一个数字。我看不到你发布的代码会导致数组索引超出范围。你能发布更多的代码或堆栈跟踪吗?如果你说哪个函数调用抛出ArrayIndexOutOfBounds异常,这会很有帮助。你能发布堆栈跟踪吗?我的意思是答案很简单,但是没有人能看出
ArrayIndexOutOfBoundException
的原因。我只是按照示例格式,但你是对的。你们两个怎么知道这些的,你不知道他想要实现什么。没有一个能回答这个问题!他想读“制表符分隔的文本文件”,这是标题Leyes Glen是对的,我修改了我的答案,我认为
array
对象是基于数组的某种自定义类。这个非整数数组用第一个整数初始化。add函数获取字符串数组
split
,并将其每个元素添加到数组中。或者他试图在一个长度为10的数组中添加12个元素。@Rakesh是的,但似乎不仅仅是阅读。他为什么要跳过几行?例外从何而来?
  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);
        }
    }  
    Scanner sc=new Scanner(new FileReader("D:\\test.txt"));
    while (sc.hasNextLine()){
        System.out.println(sc.next());
    }