【发布时间】:2017-11-01 09:39:59
【问题描述】:
我正在阅读一段代码如下:
private String loadAsString(final String path) {
try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
Scanner scanner = new Scanner(inputStream)) {
// '\\A' is the delimiter of .sql file?
return scanner.useDelimiter("\\A").next();
} catch (IOException e) {
throw new RuntimeException("Unable to close input stream.", e);
}
}
其中 path = "***.sql",表示我电脑上的一个 SQL 文件。
我的问题是为什么使用模式“\A”作为分隔符来结束SQL文件的读取?据我所知,“\A”是 Java 的正则表达式,用于输入的开头但不是结尾。感谢您的帮助。
【问题讨论】:
-
@AMB 这没有回答问题。
-
这会导致混乱,这正是为什么应该避免这样的“技巧”。这样做没有任何好处;它只会使代码的读者想知道其意图是什么。
"\\z"也可以正常工作,并且符合代码的意图。 -
@VGR 我尝试使用“\\z”。没用。
-
我认为其他人已经解释了为什么“\\A”有效。
标签: java