首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java io流闭合错误

Java io流闭合错误
EN

Stack Overflow用户
提问于 2014-10-27 23:23:41
回答 1查看 2.1K关注 0票数 1

因此,我花了一段时间来修复调试中的所有错误,并运行我从我的入门Java类中编写的程序。但是现在它在第一次输入后给出了下面的错误。

代码语言:javascript
复制
Exception in thread "main" java.io.IOException: Stream closed
at sun.nio.cs.StreamDecoder.ensureOpen(StreamDecoder.java:46)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:148)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at StatsDemo.main(StatsDemo.java:54)

我根据评论和说明把下面的所有东西都写下来了。但我不知道是怎么回事。它应该要求输入文件numbers.txt,但是在我输入文件后,它会给出这个错误。

代码语言:javascript
复制
import java.text.DecimalFormat;
import java.util.Scanner;
import java.io.*;

public class StatsDemo
{
    public static void main(String [] args) throws IOException
    {
        double sum = 0;
        int count = 0;
        double mean = 0;
        double stdDev = 0;
        double difference;

        DecimalFormat threeDecimals = new DecimalFormat("0.000");
        Scanner keyboard = new Scanner (System.in);
        String filename;

        System.out.println("This program calculates statistics"
            + "on a file containing a series of numbers");
        System.out.print("Enter the file name:  ");
        filename = keyboard.nextLine();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 23:47:06

您正在阅读的第二个循环:

行= in.readLine();

而您的开放流称为in2。

也就是说,你从错误且封闭的溪流中阅读。

此外,作为良好实践,您应该关闭最上面的读取器,而不是最内部的读取器,即您应该使用in.close()而不是file.close();

冲水的目的:

如果您查看PrintWriter的源代码,您将看到它使用了一个内部缓冲区:

代码语言:javascript
复制
public PrintWriter(File file, String csn)
throws FileNotFoundException, UnsupportedEncodingException
{
this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), csn)),
     false);
}

该缓冲区不会立即将输出发送到基础输出流。它将输出保存在内存中,直到刷新。通常,当输出包含新行时,刷新会自动发生。否则,您需要手动刷新缓冲区,以确保实际写入输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26598511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档