【问题标题】:PrintWriter confusion [duplicate]PrintWriter 混乱[重复]
【发布时间】:2013-09-24 12:21:54
【问题描述】:

我对 Java 中的 PrintWriter 有疑问,这是我的代码:

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.PrintWriter;
    import java.util.Scanner;


public class Out {

public static void main(String[] args) {

  try{
File a=new File("C:/Users/Acer/Desktop/abc.txt");
PrintWriter out=new PrintWriter(a);
Scanner c=new Scanner(System.in);


while(c.hasNextInt()){
    out.printf("%d", c.nextInt());
    out.println();
c.close();  
}
out.close();
System.out.println("input written into file successfully!");
   }
    catch(FileNotFoundException e){
System.out.println("The file not found");


   }
}

   }

我运行程序后,文件abc的内容丢失了,然后我执行Scanner功能输入1 2 3 4 5,它显示错误:

    1 2 3 4 5
    Exception in thread "main" java.lang.IllegalStateException: Scanner closed
at java.util.Scanner.ensureOpen(Unknown Source)
at java.util.Scanner.hasNext(Unknown Source)
at java.util.Scanner.hasNextInt(Unknown Source)
at java.util.Scanner.hasNextInt(Unknown Source)
at Out.main(Out.java:17)

应该输出:

     1
     2
     3
     4
     5

但是程序好像找不到文件,不知道是哪一部分出错了,请帮忙,加油!

【问题讨论】:

  • 他们为什么要投票给你?

标签: java


【解决方案1】:

您正在关闭的Scanner 对象c 上调用hasNextInt() 方法,该对象为您提供执行。

所以c.close(); 应该在while 循环之外

【讨论】:

  • 你好,谢谢你的帮助,是的,错误信息似乎消失了,但是当我输入 1 2 3 4 5 时,它根本没有响应,我应该期待什么结果?
  • @WangPeiTheDancer 要获得响应,您需要输入一个非整数值,使其退出循环。例如输入1 2 3 4 5 h
  • @WangPeiTheDancer add out.flush();在你的循环中,每次循环迭代都会在文件中打印数据
  • 谢谢你,Prabhaker,帮助很大!
  • @WangPeiTheDancer 不客气。:)
【解决方案2】:

您正在关闭循环内部的 Scanner 对象!

试着把它放在循环之外。

while(c.hasNextInt()){
    out.printf("%d", c.nextInt());
    out.println();
}
c.close();  

您的预期输出是:

input written into file successfully!

而不是:

1
2
3
4
5

【讨论】:

    【解决方案3】:

    试试这个

    while(c.hasNextInt()){
    out.printf("%d", c.nextInt());
    out.println();
    }
     c.close();  
    

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2015-05-28
      相关资源
      最近更新 更多