Java套接字和文件流



我有一个关于文件的基本问题…我好像被卡住了。

我正在创建一个服务器-客户机套接字。客户端使用迭代方式和下面的方法向服务器发送随机数整数。

//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

可以这样写文件

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);

使用BufferedWriterBufferedReader的优点是您可以读/写字符串并拥有一个人类可读的文件。使用DataOutputStream,您将有一个二进制文件,并且您必须自己从/转换为您的数据格式。

关于代码示例:

dis.read();

将返回读取的字节数,而不是实际数据。你可以使用

dis.readInt();

相关内容

  • 没有找到相关文章

最新更新