使用 Java 的 BufferedReader 读取 UE3 .ini 文件读取的行数少于输入文件中的行数

问题描述

问题

我正在尝试读取 Gearbox Software 2012 年视频游戏“Borderlands 2”的配置文件。

  • 我面临的问题是我正在读取的输入文件是 2,245 行和 77,344 长度,而地图中的值数量 我正在读这个文件的只有 859 行 和 31,786 长度。

  • 流过早关闭并不是因为 手动检查显示 最后几行在那里,它是 中间缺失的随机线

  • 我什至尝试过 Files.readAllLines() 但我似乎无法阅读更多内容 输入文件中超过 859 行。

  • 当我使用 FileWriter 将此映射输出到新文件时, 行是 860,在中间添加了一个额外的空行 程序

  • 我检查了其他线程以读取 .ini 文件。一旦我弄清楚我在这里做错了什么,我将使用 ini4j 或正则表达式。

我的地图对象

Map <String,String>config_vals=new LinkedHashMap<>();
   

我的输入对象

InputStream IS= new FileInputStream("C:\\Users\\V\\BC\\WillowEngine.ini");
Reader R=new InputStreamReader(IS);
BufferedReader BFR=new BufferedReader(R);

循环读取文件内容

while((temp=BFR.readLine())!=null)
 {
    if(temp.indexOf("=")==-1)             //if not a key-value pair,put whitespace as value
     config_vals.put(temp,"");  
    else
    {
     int separator=temp.indexOf("=");     //separating a k-v pair from a file into map entry     
     config_vals.put(temp.substring(0,separator),temp.substring(separator+1,temp.length()));
    }
}
BFR.close();
System.out.println(config_vals.size());  // prints 859

我昨天工作了一个小时左右,但我无法弄清楚我在这里做错了什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)