Java逐行读取文件未正确读取行
我已经用以下格式将好几条推文保存在文本文件中:Java逐行读取文件未正确读取行,java,Java,我已经用以下格式将好几条推文保存在文本文件中: Country:Brazil_result.txt Date: \r\n09/19/14 TweetTextExtract: #Brazil on track to becoming the leader of #wind #energy production in Latin America http://t.co/MFJjNPxodf Country:Brazil_result.txt Date: \r\n09/19/14 TweetTextE
Country:Brazil_result.txt Date: \r\n09/19/14 TweetTextExtract: #Brazil on track to becoming the leader of #wind #energy production in Latin America http://t.co/MFJjNPxodf
Country:Brazil_result.txt Date: \r\n09/19/14 TweetTextExtract: @ConceptOfficial FOLLOW ME GUYS PLEASE I LOVE YOU SO MUCH You can use something like that:
if (line.contains("TweetTextExtract: ")){
String[] stringline = line.split("TweetTextExtract: ");
System.out.println(stringline[0] + stringline[1]);
}
else{
System.out.println("Line doesn't't contain \"TweetTextExtract: \"");
}
Country:Brazil_result.txt日期:\r\n09/19/14 TweetTextExtract:#巴西有望成为拉丁美洲风能生产的领导者http://t.co/MFJjNPxodf
国家/地区:Brazil_result.txt日期:\r\n09/19/14 TweetTextExtract:@ConceptOfficial跟我来,伙计们,请告诉我我非常爱你们你们可以用这样的东西:
String[] stringline = line.split("TweetTextExtract: ");
for (String s : stringline) {
System.out.print(s);
}
System.out.println("");
当我运行它时,它实际上不会为我提供异常。但您如何通过在拆分的字符串中动态打印元素来避免此错误。下面的增强循环将为您提供相同的结果
new InputStreamReader(fis, "UTF-8") //or UTF-16
通过查看结果,您可以确定stringline数组中存在多少元素。您的问题几乎肯定是文件的文本编码错误。将文件另存为UTF-8(或UTF-16),然后使用
如果在上述构造函数中使用的编码与文本文件中的编码不匹配,则会出现乱码,然后即使在第一行上,split
也无法工作
如果您想保留文本文件的原始编码,只需找出它是什么,然后改用它。好吧,那句话“请我如此爱您,这正是这行复制的方式。”。在文本文件中,所有这些都在一个上line@Icewind如果您在编辑模式下看到文本,它实际上是一个换行符,而不是一个新行。不,它在一个单独的行上。ArrayIndexOutOfBoundsException之前的打印输出包含前面的部分。我建议在拆分之前打印行。所以你知道是哪一行引起了问题。我也会打印出这一行本身,它不包含“TweetTextExtract”-这样你就可以看到它出错的地方。OP不会给出如何管理不包含“TweetTextExtract:”的行的更多信息。这就是我给他一个如何解决OutOfBoundsException的提示。“在第三行中,split方法返回一个只有一个元素的数组。”所有行都包含分隔符字符串。37分钟前它们不是。所以我通知您,现在它们是:)“这就是为什么在第三行中出现数组越界异常”所有行都包含分隔符字符串。@user1803551是的,在用户编辑问题之后,我发现这不是问题。然后我编辑了我的一个Yip,结果是编码问题