0

Javaコンソールで.datを印刷する正しい方法は何ですか?

public void open(){
    try {
        FileInputStream inFile =
            new FileInputStream("C:"+File.separatorChar+"transactions.dat");
        ObjectInputStream in = new ObjectInputStream(inFile);
        //While (in.readLine!=null){
            System.out.print(in.readLine());}
        in.close();
    } catch (FileNotFoundException ex) {
        System.out.println(ex);
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally{  }
}

これにより、単一行のみの結果が得られ、文字のサイズが異なります。すべてのデータを読み取り、読み取り可能な出力でコンソールに出力する方法!

このdatファイルに最初に書き込むときは、

FileOutputStream outFile =
    new FileOutputStream("C:"+File.separatorChar+"transactions.dat");
ObjectOutputStream out = new ObjectOutputStream(outFile);
out.writeChars(brokerageAcc1.toString());
4

3 に答える 3

0
FileInputStream fis = new FileInputStream("C:"+File.separatorChar+"transactions.dat");
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
String s;
while ((s=br.readline())!=null)
    System.out.println(s);
于 2011-04-06T12:38:33.240 に答える
0

これが読み書きするテキストである場合は、行処理を提供するために BufferedWriter と BufferedReader でラップされた Writer クラスと Reader クラスを使用する必要があります。

FileOutputStream outFile =
    new FileOutputStream("C:"+File.separatorChar+"transactions.dat");
BufferedWriter writer = new BufferedWriter(new Writer(outFile));
writer.write(Acc1.toString());
// maybe write a newline??
writer.newLine();

次に、バッファリングされたリーダーを使用してそれを読み戻します。

FileInputStream inFile =
    new FileInputStream("C:"+File.separatorChar+"transactions.dat");
BufferedReader reader = new BufferedReader(new InputStreamReader(inFile));
while (true) {
    String line = reader.readline();
    if (line == null) break;
    System.out.println(line);
}
于 2011-04-06T12:41:26.050 に答える
0

コンソールで文字のサイズが異なる場合、コンソール自体はプロポーショナル フォントでテキストを表示するように構成されています。これはコンソールで調整する必要があり、Java アプリケーションからは制御できません。

あなたはに書いていObjectOutputStreamます。これはやや奇妙ですが、これが必要な場合があります。このようなファイルから読み取るには、次のコードを使用します (注: 書き込みアルゴリズムを少し変更しました! ストリームの終了と例外処理は含まれていません)

// writing

FileOutputStream outFile = new FileOutputStream("C:"+File.separatorChar+"transactions.dat");
ObjectOutputStream out = new ObjectOutputStream(outFile);

String s = brokerageAcc1.toString();
out.writeInt(s.length());
System.out.println(s.length());

out.writeChars(s);

// reading

FileInputStream inFile = new FileInputStream("C:"+File.separatorChar+"transactions.dat");
ObjectInputStream in = new ObjectInputStream(inFile);
int length = in.readInt();     // get the number of chars
System.out.println(""+length);
StringBuilder result = new StringBuilder();
for (int i = 0; i < length; i++)
  result.append(in.readChar());
System.out.println(result.toString());
于 2011-04-06T12:49:29.633 に答える