【发布时间】:2016-04-29 15:43:53
【问题描述】:
我想读取一个 .txt 文件,它是 tabstop 格式的表格,如下所示:
1 ABC short text
2 DEF very very long text....
3 GHI short text
4 JKL short text
问题是,当文本很长(这意味着只有几 KB 而不是 GB 左右 ;-))时,不会读取整行。 我使用此代码进行阅读:
try {
InputStream fis = new FileInputStream(file.getAbsolutePath());
InputStreamReader isr = new InputStreamReader(fis, Charset.forName("ISO-8859-1"));
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
String[] values = line.split("\t", -1); // don't truncate empty fields
System.out.println(values[0] + " " + values[1] + " " + values[2]);
}
}
为了更好地解释问题: 上表的结果是这样的(不应该这样):
1 ABC short text
2 DEF very very lo
【问题讨论】:
-
你可以试试this answer
-
很长的意思是几 KB 之类的东西。我认为它在超过 255 个字符的行上会中断。
-
你真的在打OOM吗?或者从逻辑上讲,您认为它实际上并没有阅读整行?当您说“问题是,未读取整行”时,我试图了解问题到底是什么,您是否看到错误?
标签: java bufferedreader readline