做一些存档的事情

时间:2013-11-19 21:01:31

标签: java

所以我创建了一个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();
}

1 个答案:

答案 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