Так что мне потребовалось некоторое время, чтобы исправить все ошибки из отладки и запустить программу, которую я написал из моего встроенного Java-класса. Но теперь он дает мне следующую ошибку после первого ввода.Ошибка Java io stream закрыта
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)
Я написал все ниже println в соответствии с комментариями и инструкциями. Но я не уверен, что не так. Предполагается просить ввести файл number.txt, но после ввода файла он дает мне эту ошибку.
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();
Мне нужно больше внимания уделять вашему вопросу, но в качестве примечания следует удалить «throws IOException» из вашего «основного» метода. Хотя это технически позволяет избежать «try/catch», никогда не будет сущности, которой вы управляете вызовом 'main', поэтому любые исключения будут необработаны, что не является хорошей практикой кодирования. –
Не могли бы вы указать на ту линию, где выбрасывается исключение? – TNT
Возможный дубликат [java IO Exception: Stream Closed] (http://stackoverflow.com/questions/22900477/java-io-exception-stream-closed) – Chiseled