所以我创建了一个java程序,它输出到一个文件(classname.java)java程序的基本模板......
/*
Nathaly Morcillo
Nov 19 2013
Header comments
*/
public class test{
public static void main String([] args){
}
}
但我不明白的是:
收集所需输入后,检查所请求的文件(classname.java)是否已存在。如果不是,则程序如上所述进行。如果它确实存在,程序只是添加标题注释(因为你可能之前没有把它们放进去)。提示:既然你必须读取然后写入同一个文件,请尝试使用
Scanner scan = new Scanner(file); scan.useDelimiter("\\Z"); String content = scan.next();
在写出文件和新标题注释之前读入并存储整个文件内容的方法。
我不明白如何处理scan.useDelimiter("\\Z");
我拥有的是:
File outputFile = new File(outputFileName);
if (outputFile.exists()) {
} else {
pout.println(
System.out.println("Contents of file");
pout.close();
}
答案 0 :(得分:0)
由于这看起来像是家庭作业,我不打算给你答案,但我会试着解释发生了什么,并给你一些提示。
Scanner scan = new Scanner(file);
这将创建一个新的Scanner
对象,允许您从给定的file
中读取。
scan.useDelimiter("\\Z");
Scanner
对象将其输入拆分为所谓的标记。它通过使用分隔符来实现。基本上,它会查找与其分隔符匹配的任何内容,并在每个匹配点处切换其输入。在您的情况下,"\\Z"
是一个正则表达式,它只匹配输入的结尾。这会导致您的Scanner
读取整个文件。
String content = scan.next();
这将返回Scanner
输入中的下一个标记。由于您将分隔符设置为"\\Z"
,因此这是整个文件。
现在进入实际程序。显然,您无法从不存在的文件中读取内容,因此如果Scanner
返回outputFile.exists()
,您可能只想使用true
。