我正在尝试实现一个方法来编写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()
方法那样,让调用者处理它。