1
このコードを実行しようとしましたが、ほとんどの場合動作します。 しかし、何番の番号が入力されたのか(最後の部分で)プログラムが印刷したいとき、プログラムは欲しくない。 どうしたのですか?そして私はそれをどのように修正できるのか?ビンファイルからデータを印刷できません
public static void main(String[] args)
{
FileOutputStream outChannel = null;
DataOutputStream numberChannel = null;
Scanner kb = new Scanner(System.in);
int sum = 0;
int count = 0;
int highest = 0;
int number = 0;
String name = "";
try
{
System.out.println("Enter the name of the binary file: ");
name = kb.nextLine();
outChannel = new FileOutputStream(name);
numberChannel = new DataOutputStream(outChannel);
System.out.println("Enter negative value to stop.");
System.out.println("Enter scores: ");
while(true)
{
number = kb.nextInt();
if(number <0)
break;
numberChannel.writeInt(number);
sum+=number;
count++;
if(number>= highest)
highest = number;
}
}
catch(FileNotFoundException e)
{
System.out.println("File not found");
}
catch(IOException e)
{
System.out.println("Cannot write file");
}
finally
{
Scanner fileReader = new Scanner(name);
while(fileReader.hasNextInt())
{
System.out.println(number);
}
fileReader.close();
System.out.println("Average: " + ((double)sum/(double)count));
System.out.println("Highest: " +highest);
try
{
if (numberChannel!= null)
numberChannel.close();
}
catch(IOException e)
{
}
}
}
すべてが評価されているのに役立ちます!
PrintWriter writer = new PrintWriter(new File(name));
writer.println(number);
そして、このようなファイルからの読み取りにScanner
を使用します:
Scanner fileReader = new Scanner(new File(name));
while (fileReader.hasNextLine()) {
String nu = fileReader.nextLine();
System.out.println(nu);
}
EDITED VERSION私はこのようなファイルへの書き込みに使用PrintWriter
、与えたコメントへのパー
'FileOutputStream'は、私のような生のバイトのストリームを書くためのものです年齢データ。文字のストリームを書き込むには、FileWriterの使用を検討してください。 [oracle](https://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html)のドキュメントを参照してください。 –