繁体   English   中英

java.io.FileNotFoundException:临时(访问被拒绝)

[英]java.io.FileNotFoundException: Temp (Access is denied)

我不知道为什么会这样。 我的代码的目的是比较两个文件,这是我从编程书中获得的。 这是我的代码:

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。 感谢您的任何答案。

您的命令将是java -cp . CompFiles file1 file2 java -cp . CompFiles file1 file2 但是您确实应该使用一个包装。 (-cp。假设您已将ComFiles.class编译到当前目录)。

访问被拒绝的原因很可能是由于您试图将目录作为文件流( .\\Temp\\ )打开。 如果您的测试文件位于Temp中,则可以使用java -cp . CompFiles temp\\file1 temp\\file2 java -cp . CompFiles temp\\file1 temp\\file2

我不确定这本书。 但是要执行您的程序:

java CompFiles a.java b.java

应该管用。 假设a.java b.java是TEXT文件,并且存在于当前目录(执行此程序的目录位置)中。

就你而言

java CompFiles CompFiles.java temp

temp可能是文件夹,因此您会收到此错误

I/O Error: java.io.FileNotFoundException: Temp (Access is denied)

您正在运行以下程序
Java CompFiles CompFiles.java temp

这里的temp似乎是目录名而不是文件名。 因此,请在第二个参数中输入有效的文件名

您可以尝试以下操作:

Java CompFiles CompFiles.java CompFiles.java

这将为您提供输出:文件相同

为什么Access拒绝?

您无法读取像普通文件一样的目录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM