Java程序创建文件,但文件不可见

时间:2017-03-19 02:15:09

标签: java

我有一个程序,它根据命令行输入替换文件中的文本。目前,它会创建一个临时文件,并将替换文本的字符串写入新临时文件中。这个程序在我校园的计算机实验室的桌面上工作,但当我尝试在我的个人笔记本电脑上运行时,创建临时文件,我可以通过打印它的规范路径找到它,file.exists()返回true ,但它没有显示在我的桌面上。 使用Windows资源管理器进行搜索不会产生任何效果。

我正在运行Windows 7并使用TextPad。有谁知道这可能导致什么?我可以提供任何其他必要的信息。

编辑:我在Mac Pro 2011上运行Windows 7,如果这有任何区别的话。

编辑:我发现了这个问题。我已经下载了Comodo Antivirus软件,每当我创建一个文件时,它都会在VTRoot文件夹中创建它以用于沙箱。我能够改变设置并解决了我的问题。

import java.io.*;
import java.util.*;

public class ReplaceText{
    public static void main(String[] args)throws IOException{
    if(args.length != 2){
        System.out.println("Incorrect format. Use java ClassName textToReplace filename");
        System.exit(1);
    }

    File source = new File(args[1]);
    if(!source.exists()){
        System.out.println("Source file " + args[1] + " does not exist.");
        System.exit(2);
    }


    File temp = new File("temp.txt");
    try(
        Scanner input = new Scanner(source);
        PrintWriter output = new PrintWriter(temp);

        ){
            while(input.hasNext()){
                String s1 = input.nextLine();
                String s2 = s1.replace(args[0], "a");
                output.println(s2);

            }
        }
    }
}

4 个答案:

答案 0 :(得分:1)

如果您看不到temp.txt文件,那是因为它位于您的java源代码所在的项目目录中。但是如果您找到它,那么它也将不包含任何内容。原因是您没有关闭输出流到文件放置

  

output.close()

在while循环之后

答案 1 :(得分:0)

尝试通过在创建类似

的同时提供整个文件路径来创建文件
  

文件(URI uri)

这通过将给定文件:URI转换为抽象路径名来创建新的File实例。

答案 2 :(得分:0)

我发现了这个问题。我已经下载了Comodo Antivirus软件,每当我创建一个文件时,它都会在VTRoot文件夹中创建它以用于沙箱。我能够改变设置并解决了我的问题。

答案 3 :(得分:0)

如果您已安装comodo防病毒软件,则应遵循以下说明:

1。打开comodo,

2。单击设置,

3。然后单击“容器”->单击“自动容器”,

4。然后在顶部,取消选中启用自动包含功能。