Java:对这些文件I / O方法不起作用感到困惑

时间:2015-05-30 07:00:42

标签: java file file-io exception-handling io

我试图实现一种方法将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 ();
}

你可以说我很困惑,任何帮助都会令人惊讶。谢谢。

1 个答案:

答案 0 :(得分:0)

您正在写信$perpage = 10; $page = (int)$_GET['page']; if(!($page>0)) $page = 1; $offset = ($page-1)*$perpage; $extensions = array('3gp', 'mp4', 'png', 'gif', 'bmp'); $files = glob('files/'.$_GET['dir'].'/*.'.'{'.implode(',', $extensions).'}', GLOB_BRACE); $total_files = sizeof($files); $total_pages = ceil($total_files/$perpage); $files = array_slice($files, $offset, $perpage); ?> <div> SHOWING: <?=$offset?>-<?=($offset+$perpage)?> of <?=$total_files?> files </div> <?php foreach($files AS $file) : ?> <a class="fileName" href="file.php?file=files/<?=$_GET['dir']?>/<?=basename($file)?>"> <?=basename($file)?> </a> <?php endforeach; ?> <a class="page" href="index.php?dir=<?=$_GET['dir']?>&page=<?=(($page-1>1)?($page-1):1)?>"> << </a> <?php for($p=1; $p<=$total_pages; $p++) : ?> <a class="page" href="index.php?dir=<?=$_GET['dir']?>&page=<?=$p?>"> <?=$p?> </a> <?php endfor; ?> <a class="page" href="index.php?dir=<?=$_GET['dir']?>&page=<?=(($page+1>$total_pages)?$total_pages:($page+1)?>"> >> </a> 但是正在尝试阅读testfile

代码组织不良。

  • 一个名为test1的方法不应该做任何其他事情,它当然不应该做输入
  • 返回已关闭的write()完全没有意义。
  • PrintWriter方法在内部捕获write(),这使得调用者无法知道失败。请改为抛出 IOException,就像IOException方法一样,并让调用者处理它。