我使用正则表达式解析文本文件,以按如下所示使用结果组1和2:
很遗憾,文件上没有数据! 我不知道问题出在哪里,这是我的代码:
EffectiveTimestamp,FromCurrency,TargetCurrency,CurrencyRateType,CurrencyRate
2018-10-26,USD,INR,CURRENT,73.865
这里有人可以帮助我解决此问题并加以识别吗?
答案 0 :(得分:1)
您正在使用BufferedWriter,并且从不刷新(刷新写入器将内容推送到磁盘上)您的写入器,甚至在程序结束时也将其关闭。
由于这种情况,在将内容从BufferedWriter写入磁盘上的实际文件之前,程序将退出并且内容丢失。
为避免这种情况,您可以在将内容写入bw1之后立即调用flush
bw1.write(c);
bw1.newLine();
bw1.flush();
OR
在程序结束之前,您应该调用
bw1.close(); // this ensures all content in buffered writer gets push to disk before jvm exists
建议不要在每次写入数据时都调用flush,因为这样做会破坏缓冲写入的目的。
所以最好是关闭缓冲的writer对象。您可以通过两种方式做到这一点,
除此之外,您还需要确保正则表达式与条件匹配,
if(i==0){
被执行,否则将不会在文件中写入数据的代码,当然在这种情况下,不会在文件中进行写入。
此外,强烈建议关闭您打开的任何资源,例如文件资源,数据库(连接,语句,结果集)资源等。
希望有帮助。