Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java逐行读取文件未正确读取行_Java - Fatal编程技术网

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,结果是编码问题