我有一个文件,内容为"hi there tom!\n"
。也就是说,文件末尾有换行符。
在该文件上运行此代码时:
File file = new File(path.toString());
String content = new Scanner(file).useDelimiter("\\Z").next();
结尾的\n
在content
中不存在。如何使\n
被保留?
答案 0 :(得分:1)
Scanner.useDelimiter()
将其自变量解释为Pattern
(正则表达式)。并引用Pattern
的API文档:
正则表达式构造概述
边界匹配器
\Z
–输入的结尾,但对于最终终止符(如果有)\z
–输入的结尾
因此,为了在不忽略最后一行终止符的情况下读取文件的末尾,请将参数useDelimiter()
从"\\Z"
更改为"\\z"
。
答案 1 :(得分:1)
使用nextLine()代替next()在每一行的末尾消耗\n
字符。