Java:与这些文件I/O方法不工作混淆



我正在尝试实现一个方法来编写Song()对象数组到一个文件进行分配。我对如何做到这一点相当困惑。我希望能够在main方法中调用函数,但它似乎没有做任何事情。在这个阶段,它是一个测试,我希望它在运行main()时在命令行上打印。下面是我的代码:

    public static void main (String[] args)
    { //run the main program.
        Interface songUI = new Interface();
        songUI.run();
        try{
        PrintWriter outputTest = null;
        outputTest = write("testfile");
        read();
    }
    catch(IOException e){
        System.out.println("Caught!");
    }
    }

      public static PrintWriter write (String fileName) throws IOException{
      Scanner console = new Scanner(System.in);

      PrintWriter outFile = new PrintWriter(fileName);
      outFile.println ("Random numbers"); 
      for(int i=0; i<10; i++)
      {
          outFile.println ((int)( 1 + Math.random()*10) + " "); 
      }
      outFile.close();
      return outFile;
}

我也有一个方法从文件中读取,我想在这里工作:

public static void read() throws IOException{
        String fileName = "test1";
        System.out.println ("The file " + fileName + "ncontains the following lines:n");
        Scanner inputStream = new Scanner (new File (fileName));
        while (inputStream.hasNextLine ())
        {
            String line = inputStream.nextLine ();
            System.out.println (line);
        }
        inputStream.close ();
}

你可以告诉我我很困惑,任何帮助将是惊人的。谢谢你。

您正在写testfile,但试图从test1读取。

代码组织不良。

  • 一个名为write()的方法不应该做任何其他事情,当然也不应该做input
  • 返回闭合的PrintWriter是完全没有意义的。
  • write()方法在内部捕获IOException,这使得调用者不可能知道失败。让它抛出 IOException,而不是像read()方法那样,让调用者处理它。

相关内容

  • 没有找到相关文章

最新更新