我有一个程序,它根据命令行输入替换文件中的文本。目前,它会创建一个临时文件,并将替换文本的字符串写入新临时文件中。这个程序在我校园的计算机实验室的桌面上工作,但当我尝试在我的个人笔记本电脑上运行时,创建临时文件,我可以通过打印它的规范路径找到它,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);
}
}
}
}
答案 0 :(得分:1)
如果您看不到temp.txt文件,那是因为它位于您的java源代码所在的项目目录中。但是如果您找到它,那么它也将不包含任何内容。原因是您没有关闭输出流到文件放置
在while循环之后output.close()
。
答案 1 :(得分:0)
尝试通过在创建类似
的同时提供整个文件路径来创建文件文件(URI uri)
这通过将给定文件:URI转换为抽象路径名来创建新的File实例。
答案 2 :(得分:0)
我发现了这个问题。我已经下载了Comodo Antivirus软件,每当我创建一个文件时,它都会在VTRoot文件夹中创建它以用于沙箱。我能够改变设置并解决了我的问题。
答案 3 :(得分:0)
如果您已安装comodo防病毒软件,则应遵循以下说明:
1。打开comodo,
2。单击设置,
3。然后单击“容器”->单击“自动容器”,
4。然后在顶部,取消选中启用自动包含功能。