我被困在为什么我的程序无法工作,我试图打印到文件但是,它说student[i].listCourses(System.out);
我实际上需要它打印到test.txt文件但我尝试放入outputFile,它不起作用
System.out.println("Please Enter A FileName");
// Create a PrintWriter object and open the file.
PrintWriter outputFile = new PrintWriter("test.txt");
// Get data and write it to the file.
// Continue reading till a blank line is entered
int i=0;
do
{
while ((student[i] != null)&&(i <= student.length)){
student[i].addCourse(course[i]);
outputFile.println(student[i].toString());
student[i].listCourses(System.out);
i++;
}
这就是宣布列表课程的方式
public void listCourses(PrintStream p) {
for (Course crs: courses)
if (crs != null)
p.println(crs);
}
答案 0 :(得分:0)
这是一个问题
while ((student[i] != null)&&(i <= student.length)){
让我们假设i == student.length,会发生什么?
答案 1 :(得分:0)
我假设你的代码目前还没有为你编译。问题是,您的outputFile
是PrintWriter
,而System.out是PrintStream
。这些不可互换。查看每个文档页面上的继承层次结构:
http://download.oracle.com/javase/6/docs/api/java/io/PrintWriter.html
http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html
如果您需要对两个对象使用相同的功能,则必须重新考虑您传入的内容(例如OutputStream
代替System.out
和FileOutputStream
或制作两个函数,一个接受PrintWriter
,另一个接收PrintStream
。