各位java开发人员你好。我有一个非常奇怪的问题。
我正在尝试逐行读取 csv 文件。我刚刚测试了线条的阅读。只有每次我读一行时,该行在文本的每个字符之间都包含方形字符。我什至将文件保存为写字板和记事本中的 txt 文件,没有任何更改。
因此,我一定是在做一些愚蠢的事情......
我有一个 csv 文件,标准的 csv 文件,是的,一个带有逗号的文本文件。我尝试阅读一行文本,但文本全都乱七八糟,无法在文本中找到该短语。
有什么建议吗?下面的代码。
//open csv
File filReadMe = new File(strRoot + "data2.csv");
BufferedReader brReadMe = new BufferedReader
(new InputStreamReader(new FileInputStream(filReadMe)));
String strLine = brReadMe.readLine();
//for all lines
while (strLine != null){
//if line contains "(see also"
if (strLine.toLowerCase().contains("(see also")){
//write line from "(see also" to ")"
int iBegin = strLine.toLowerCase().indexOf("(see also");
String strTemp = strLine.substring(iBegin);
int iLittleEnd = strTemp.indexOf(")");
System.out.println(strLine.substring(iBegin, iBegin + iLittleEnd));
}
//update line
strLine = brReadMe.readLine();
} //end for
brReadMe.close();
Run Code Online (Sandbox Code Playgroud)
我只能认为这是一种不一致的字符编码。在记事本中打开文件,选择另存为,然后在“编码”下拉列表中选择 UTF-8。然后将“UTF-8”作为第二个参数添加到 InputStreamReader,例如
BufferedReader brReadMe = new BufferedReader
(new InputStreamReader(new FileInputStream(filReadMe), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
这应该解决与编码的任何不一致之处。