gpt4 book ai didi

java - Java异常中逐行读取文件的特定列

转载 作者:行者123 更新时间:2023-12-01 10:23:06 25 4
gpt4 key购买 nike

我下面有这段代码。我想做的是读取一个文本文件,其中每一行都有由制表符分隔的字符串。例如(名称\t 国家\t id\t 内容),其中\t 是制表符然后我只想打印每行的第二列。我尝试将整行拆分为标记,但它仅适用于文件的第一行,然后抛出 ArrayIndexOutOfBoundsException。当我尝试仅打印第一列( token [0])但不打印我需要的 token [1]时,它也很完美。那么我需要做什么才能获取每行的第二列?

public static void main(String[] args) throws FileNotFoundException, IOException
{
FileInputStream fis=new FileInputStream("a.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(dis)) ;
String line;
while ((line = br.readLine()) != null)
{
String[] tokens=line.split("\\t");
System.out.println(tokens[1]);

}
fis.close();
}

最佳答案

如果该行看起来像这样

asdf\t\t\t

那么你就有问题了。你应该使用

String[] tokens=line.split("\\t", -1);

参见Java: String split(): I want it to include the empty strings at the end

关于java - Java异常中逐行读取文件的特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35466211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com