当前位置: 首页 > 知识库问答 >
问题:

如何初始化inputStream[duplicate]

桂宏旷
2023-03-14

我正在尝试初始化InputStream,但它不允许我。我已经能够初始化outputStream

public void readData() {
  String fileName = "clinicData.txt";
  Scanner inputStream;
  System.out.println("The file " + fileName +"\ncontains the following line:\n");
  
  try {
      inputStream = new Scanner (new File (fileName));
  } catch (FileNotFoundException e) {
      System.out.println("Error: opening the file " +fileName);
      System.exit(0);
  }
  while (inputStream.hasNextLine()) {
      String line = inputStream.nextLine();
      System.out.println (line);
  }
  inputStream.close();
}

共有1个答案

闻人伟
2023-03-14

您要执行以下操作:

try (Scanner inputStream = new Scanner(new File(fileName))) {
    while (inputStream.hasNextLine()) {
        String line = inputStream.nextLine();
        System.out.println(line);
    }
} catch (FileNotFoundException e) {
    System.out.println("Error: opening the file " +fileName);
    System.exit(0);
}
  • 扫描器输入流;try块中初始化,但是,不能保证初始化成功,您稍后将尝试在while循环中访问此类实例,这将是错误的。在try块内移动while循环。
  • 扫描器自动关闭的,因此您可以使用try-with-resources并省略InputStream.Close()
 类似资料:
  • 如何确保在输入有效输入之前,仍然允许循环,同时初始化此InputStream? 谢谢你

  • 我有一个非常基本的问题。我需要如何为ArrayList键入parrameters才能在BlueJ中使用代码?我有一个方法如下。

  • 问题内容: 错误 码 问题答案: 您需要初始化 ,如错误消息所示,您仅对其进行了声明。 您需要初始化数组,以便可以 在 开始设置索引 之前 为元素分配正确的内存存储。 __ 如果 仅 声明数组(如您所做的那样),则不会为元素分配内存,而只会分配给的引用句柄,并且尝试在任何索引处初始化变量时都会引发错误。 另外,您也可以在花括号内初始化数组,这样, 相当于

  • 我有个问题. 如何使用我在前面的 StackOverflow 问题中找到的方法初始化 JavaFX 工具包?可以在此处找到该主题:JavaFX 2.1:工具包未初始化 我正在尝试从该线程使用类似于此解决方案的解决方案: 问题:非平凡的Swing GUI应用程序需要运行JavaFX组件。应用程序的启动过程在启动依赖服务层后初始化GUI。 解决方案子类JavaFX应用程序类,并在单独的线程中运行,例如

  • 这是我第一次使用列表。我有一个名为Foods的类,我想用它做一个动态列表。我写了第一行,您可以看到下面,然后有很多方法刚刚弹出,我需要重写。我应该在每种方法中写些什么?或者这是制作列表实例的正确方法吗?

  • 我试图初始化一个< code>constexpr引用,但没有成功。我试过了 但我收到了编译时错误 错误:constexpr变量“z”必须由常量表达式初始化 删除< code>const会导致 错误:将对类型“int”的引用绑定到类型“const int”的值会删除限定符 尽管我感觉< code>constexpr自动暗示变量声明的< code>const。 所以我的问题是: < Li > < co