java - 使用 Java 的 BufferedReader 读取 UE3 .ini 文件所读取的行数少于输入文件中的行数
问题描述
问题
我正在尝试读取 Gearbox Software 的 2012 年视频游戏“无主之地 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
我昨天工作了一个小时左右,我无法弄清楚我在这里做错了什么。
解决方案
推荐阅读
- java - Spring 单元测试:我应该为 REST 控制器注入服务吗?
- php - 如果请求的数据在数据库中不可用,如何返回 404 页面?
- javascript - Wordpress - 未捕获的类型错误:$(...).datetimepicker
- python-3.x - 具有类类型的类常量
- reactjs - document.queryselector 返回 null,我不确定为什么
- perl - 在 Perl 中舍入到 2 位小数
- java - 使用输入更新数组中的数据
- maven - 访问一个maven依赖的源代码
- prometheus - 在 Prometheus 中查询获取执行时间
- java - 文本在对话框中文本的不同部分对齐