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

BufferedWriter使用 a和 a的优点BufferedReader是您可以读取/写入字符串并拥有人类可读的文件。使用 a DataOutputStream,您将拥有一个二进制文件,并且您将自己进行从 / 到您的数据格式的转换。

关于您的代码示例:

dis.read();

将返回您读取的字节数,而不是实际数据。你会这样做使用

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