Java - 逐行读取 csv 文件 - 遇到奇怪的不存在字符被读取!

标签 java file

各位 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();

最佳答案

我只能认为这是字符编码不一致。在记事本中打开文件,选择“另存为”,然后在“编码”下拉列表中选择“UTF-8”。然后将“UTF-8”作为第二个参数添加到InputStreamReader,例如

BufferedReader brReadMe = new BufferedReader
     (new InputStreamReader(new FileInputStream(filReadMe), "UTF-8"));

这应该可以解决编码中的任何不一致问题。

关于Java - 逐行读取 csv 文件 - 遇到奇怪的不存在字符被读取!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2877928/

相关文章:

java - Google plus-cmdline-示例

java - spring远程分区策略如何在不同机器上启动slave

java - 遍历目录时,如果识别出子目录,如何在其中创建空文件。

c++ - 写入大于2Gb的文件

html - request.FILES 在文件上传时始终为空

javascript - 输入文件上传成功吗?

java - 在运行时查找路径以删除文件

java - JButton 无法识别 JRadioButton 是否被选择

java - 响应式 Spring Boot API 封装 Elasticsearch 的异步批量索引

java - SwingWorker 扩展类未显示覆盖的方法