我正在使用以下代码来计算文件中的行数。
-u
根据上述输出,如果行数为1,则记录long numberOfLines = Files.lines(filePath).count();
(从行的最后一个字符中提取)应替换为delimiter
。分隔符被替换掉很好,但是当我在执行此操作后尝试删除此文件时,它不起作用。
<delimiter>\n
文件所在的文件系统与删除操作之前的文件大小相同。我试图打开此文件,它显示出“访问被拒绝”错误。
我用自定义的java方法替换了if (numberOfLines == 1) {
String rawData = (new String(Files.readAllBytes(filePath))).trim();
String toReplace = rawData.substring(rawData.length() - 1);
String outString = rawData.replaceAll(toReplace, toReplace + "\n");
Files.delete(filePath);
}
,以使用InputStream计算行数并最后关闭它,并且删除操作正常。
Files.lines(filePath).count();
应该如何表现?似乎没有关闭用于访问文件的对象。
答案 0 :(得分:3)
您可以使用if (sample := sample_map.get('A', None)) is not None:
print("A's value in map is {}".format(sample))
try-with-resources
然后您可以继续执行逻辑操作,但是流应该已经关闭。