【发布时间】:2019-02-15 23:18:08
【问题描述】:
我的扫描仪对象有问题。如果我将扫描仪传递给静态方法,扫描仪似乎无法读取它在主函数中给出的文件。当我将文件对象传递给扫描仪,然后将扫描仪传递给 Add 函数时,它不会将文件内容输出到控制台。但是,如果我注释掉 Add 函数的扫描仪部分,扫描仪会正常读取。这使我相信扫描仪能够看到文件,但不能从中读取。我的问题是如何再次读取文件,这次是在 Add 函数中?
public static void main(String[] args) throws IOException
{
File file = new File("vinceandphil.txt");
if (file.createNewFile())
{
System.out.println("New file was created");
}
else {
System.out.println("File already exists");
}
Scanner sc = new Scanner(file);
FileWriter writer = new FileWriter(file);
writer.write("Test data\n");
Add(file, writer, sc);
writer.close();
while (sc.hasNextLine())
{
System.out.println(sc.nextLine());
}
sc.close();
}
public static void Add(File f, FileWriter w, Scanner scanner) throws IOException
{
if (f.exists())
{
w.write("Got em coach\n");
w.write("We need more info\n");
w.write("Come again\n");
}
while (scanner.hasNextLine())
{
System.out.println(scanner.nextLine());
}
}
【问题讨论】: