1

クライアントクラスから、ファイル名用とコンテンツ用の文字列を送信します。

サーバーで、クライアントから受け取った文字列からファイルを作成するにはどうすればよいですか?

クライアントクラス:

 String theFile = "TextDoc.txt";
 String theFileContent = "text inside TextDoc";

 sendToServer.writeBytes(theFile +"\n");
 sendToServer.writeBytes(theFileContent);

サーバークラス:

 BufferedReader reFromClient = new BufferedReader(new InputStreamReader(socket.getInputStream())); 

 String theFileFrCl = reFromClient.readLine();
 String theFileCtFrCl = reFromClient.readLine();

クライアントが送信したものからファイルを作成するにはどうすればよいですか?コンテンツをTextDocに追加する方法がよくわかりません。

マーティン。

4

1 に答える 1

1

サーバー側では、ファイル名とコンテンツを受け取りました:

 BufferedReader reFromClient = new BufferedReader(new InputStreamReader(socket.getInputStream())); 

 String theFileFrCl = reFromClient.readLine(); // file name.
 String theFileCtFrCl = reFromClient.readLine(); // contents.

この後、ファイルを書き込みます:

FileOutputStream fos = new FileOutputStream(theFileFrCl,true); // opening file in append mode, if it doesn't exist it'll create one.
fos.write(theFileCtFrCl.getBytes()); // write contents to file TextDoc.txt
fos.close();

一部のファイルの内容をクライアントに戻したい場合は、前と同じようにクライアントにファイル名を要求するだけです。

theFileFrCl = reFromClient.readLine(); // client will write and we'll read line here (file-name).

受信したファイル名を使用してファイルを開くだけです。

try{
  FileInputStream fis = new FileInputStream(theFileFrCl);
  byte data[] = new byte[fis.available()];
  fis.read(data);
  fis.close();
  toClient.writeBytes(data); // write to client.
}catch(FileNotFoundException fnf)
{
  // File doesn't exists with name supplied by client 
}
于 2013-03-20T17:58:02.473 に答える