我不知道为什么会这样。我的代码的目的是比较两个文件,我从我的编程书中得到它。这是我的代码:
import java.io.*;
class CompFiles {
public static void main(String args[])
{
int i=0, j=0;
// First make sure that both files have been specified.
if(args.length !=2 ) {
System.out.println("Usage: CompFiles f1 f2");
return;
}
// Compare the files.
try
{
FileInputStream f1 = new FileInputStream(args[0]);
FileInputStream f2 = new FileInputStream(args[1]);
// Check the contents of each file.
do {
i = f1.read();
j = f2.read();
if(i != j) break;
} while(i != -1 && j != -1);
if(i != j)
System.out.println("Files differ.");
else
System.out.println("Files are the same.");
} catch(IOException exc) {
System.out.println("I/O Error: " + exc);
}
}
}
我编译了这样的代码:javac CompFiles.java
然后该书告诉我使用以下命令将文件复制到临时文件:java CompFiles CompFiles.java temp
。输出为java.io.FileNotFoundExceptions: Temp(Access is dined)
。
我没有使用任何IDE。谢谢你的回答。
答案 0 :(得分:0)
您的命令是java -cp . CompFiles file1 file2
。但你真的应该使用一个包。 (-cp。假设您已将ComFiles.class编译到当前目录中。)
拒绝访问很可能是因为您尝试将目录作为文件流(.\Temp\
)打开。如果您的测试用户在Temp中,您可以使用java -cp . CompFiles temp\file1 temp\file2
。
答案 1 :(得分:0)
我不确定这本书。但要执行你的程序:
java CompFiles a.java b.java
应该有效。假设a.java b.java是TEXT文件并且存在于当前目录中(执行此程序的目录位置)。
在你的情况下
java CompFiles CompFiles.java temp
temp可能是一个文件夹因此你得到这个错误
答案 2 :(得分:0)
I/O Error: java.io.FileNotFoundException: Temp (Access is denied)
您正在运行以下程序Java CompFiles CompFiles.java temp
这里temp
似乎是目录名而不是文件名。
所以,请在第二个参数
你可以试试这个 例如:
Java CompFiles CompFiles.java CompFiles.java
这将为您提供输出:文件相同
为什么Access会否认?
您无法读取普通文件等目录