0

ファイルに関する基本的な質問があります...行き詰まっているようです。

サーバークライアントソケットを作成しています。クライアントは、反復的な方法と以下のメソッドを使用して、乱数の整数をサーバーに送信します。

//BufferedWriter out = new BufferedWriter(new OutputStreamWriter (sock.getOutputStream())); 
out.write(number);
out.flush();

サーバーは次のように受け入れます。

 //BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
    number=in.read();

私が望むのは、サーバーがこれらすべての整数をファイル (たとえば myfile.txt ) に格納し、このファイルを文字列 (すべての整数を含む) として読み取ってクライアントに送り返すことです。

何か案は?私はいくつかの方法を試しましたが、今は完全に立ち往生していて、はっきりと考えることができません...誰かが私を少し助けてくれたら本当にありがたいです.

乾杯

編集:これまでにこれらの方法を試しました

FileOutputStream fos = new FileOutputStream("myfile.txt"); 
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(number); 

そして、私はこれを読んでみました

 FileInputStream fin=new FileInputStream("myfile.txt");
 DataInputStream dis = new DataInputStream(fin);
  int numbers = dis.read(); 

しかし、私が得るのは数字の0だけです。:S

4

1 に答える 1

0

ファイルの書き込みは、このように達成できます

FileOutputStream fileOutputStream = new FileOutputStream("test.txt");
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
// Make sure to write the data as a String
bufferedWriter.write("" + number);
bufferedWriter.close();
fileOutputStream.close();

その後、読み取りはこのように達成できます

FileInputStream fileInputStream = new FileInputStream("test.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
String line = bufferedReader.readLine();
number = Integer.valueOf(line);

BufferedWriteraと aを使用する利点は、BufferedReader文字列を読み書きできることと、人間が読めるファイルを持つことができることです。を使用するDataOutputStreamと、バイナリ ファイルが作成され、データ形式から / への変換を自分で行う必要があります。

あなたのコード例について:

dis.read();

実際のデータではなく、読み取ったバイト数を返します。あなたはそれを使用してそれを行うでしょう

dis.readInt();
于 2013-03-27T11:38:58.497 に答える