【问题标题】:I'm not able to pinpoint the error I'm getting trying to construct FileInputStream. I'm relatively new to programming我无法确定我试图构建 FileInputStream 的错误。我对编程比较陌生
【发布时间】:2014-05-01 01:13:33
【问题描述】:

我正在为我的 CS java 课程做家庭作业,我收到了下面列出的错误。第二条水平线下方是源代码。还有一个用于运行 Crypto.java 的附加 java 程序文件,名为 Lab13.java,我不太了解异常逻辑。代码和我澄清的问题在底部。


    Crypto.java:9: error: no suitable constructor found for FileInputStream(String[])
      FileInputStream inStream = new FileInputStream(existing);
                             ^
    constructor FileInputStream.FileInputStream(FileDescriptor) is not applicable
      (actual argument String[] cannot be converted to FileDescriptor by method invocation conversion)
    constructor FileInputStream.FileInputStream(File) is not applicable
      (actual argument String[] cannot be converted to File by method invocation conversion)
    constructor FileInputStream.FileInputStream(String) is not applicable
      (actual argument String[] cannot be converted to String by method invocation conversion)
Crypto.java:12: error: no suitable constructor found for FileOutputStream(String[])
      FileOutputStream outStream = new FileOutputStream(encrypted);
                               ^
        constructor FileOutputStream.FileOutputStream(FileDescriptor) is not applicable
          (actual argument String[] cannot be converted to FileDescriptor by method invocation conversion)
    constructor FileOutputStream.FileOutputStream(File,boolean) is not applicable
      (actual and formal argument lists differ in length)
    constructor FileOutputStream.FileOutputStream(File) is not applicable
      (actual argument String[] cannot be converted to File by method invocation conversion)
    constructor FileOutputStream.FileOutputStream(String,boolean) is not applicable
      (actual and formal argument lists differ in length)
    constructor FileOutputStream.FileOutputStream(String) is not applicable
      (actual argument String[] cannot be converted to String by method invocation conversion)
2 errors

这里是源代码:

    import java.io.*;
    public class Crypto
    {
        public static void encryptFile(String existing[], String encrypted[]) throws IOException
       {
          boolean eof = false;

      FileInputStream inStream = new FileInputStream(existing);
      DataInputStream inFile = new DataInputStream(inStream);

      FileOutputStream outStream = new FileOutputStream(encrypted);
      DataOutputStream outFile = new DataOutputStream(outStream);

      while (!eof)
      {
         try
         {
            byte input = inFile.readByte();
            int c = (input * 137) % 256;
            outFile.writeByte(c);
         }
         catch(EOFException e)
         {
            eof = true;
         }
      }

      outFile.close();
   }
}

就像我说的,下一部分用于运行 Crypto。当它捕获 IOException 时它到底在做什么?是否会显示 EOF 异常错误消息,因为它是从执行 Crypto.encryptFile 的 try 语句中捕获的?

   import java.io.*;
    public class Lab13
    {
       public static void main (String[] args)
       {
          try 
          {
             Crypto.encryptFile("MyLetters.txt", "Encrypted.txt");
             System.out.println("done.");
          }
          catch (IOException e)
          {
             System.out.println("Error- " + e.getMessage());
          }
       }
    }

【问题讨论】:

    标签: java encryption fileinputstream eofexception


    【解决方案1】:

    这样读取文件

    String path="C://simple.txt";
    BufferedReader br = new BufferedReader(new FileReader(path));
    

    我认为你无法找到路径。

    【讨论】:

      【解决方案2】:

      FileInputStream 没有一个构造函数,它接受一个字符串数组 (String[])。大概,您想向它传递一个字符串(带有文件的路径名)。 encryptFile 方法的参数是字符串数组,而不是字符串。去掉方法签名中的方括号就可以了。

      【讨论】:

        猜你喜欢
        • 2015-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-07
        • 1970-01-01
        • 1970-01-01
        • 2020-08-19
        • 2022-01-22
        相关资源
        最近更新 更多