java.io.FileNotFoundException:Temp(访问被拒绝)
我不知道为什么会这样。我的代码的目的是比较两个文件,这是从我的编程书中得到的。这是我的代码:java.io.FileNotFoundException:Temp(访问被拒绝),java,command-prompt,temp,Java,Command Prompt,Temp,我不知道为什么会这样。我的代码的目的是比较两个文件,这是从我的编程书中得到的。这是我的代码: 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
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(访问被禁止)
。
我没有使用任何IDE。谢谢您的回答。您的命令将是
java-cp。CompFiles file1 file2
。但是你真的应该使用一个包。(-cp.asumes您将ComFiles.class编译到当前目录)
拒绝访问很可能是因为您试图以文件流形式打开目录(
\Temp\
)。如果您的测试场处于临时状态,您可以使用java-cp。CompFiles temp\file1 temp\file2
我对这本书没有把握。但要执行您的程序:
java CompFiles a.java b.java
应该有用。假设a.javab.java是文本文件,并且存在于当前目录中(执行此程序的目录位置)
就你而言
java CompFiles CompFiles.java temp
temp可能是一个文件夹,因此您会遇到此错误
I/O Error: java.io.FileNotFoundException: Temp (Access is denied)
您正在运行以下程序Java CompFiles CompFiles.Java temp
这里的temp
看起来像是目录名,而不是文件名。
因此,请在第二个参数中提供有效的文件名
你可以试试这个
例如:
这将为您提供输出:文件相同
为什么拒绝访问
你不能像普通文件那样读取目录你有第二个文件吗
temp
?我不明白你的意思。你在比较两个文件。其中一个文件是CompFiles.java
,因为您刚刚编译了它,我想您已经拥有了它。第二个文件是temp
。您的文件系统中是否有另一个名为temp
的文件?根据你的问题,我的假设是你不知道。temp不是一个有效的文件名,因此你会得到错误,请参考下面我的答案
Java CompFiles CompFiles.java CompFiles.java