我有一个关于文件的基本问题…我好像被卡住了。
我正在创建一个服务器-客户机套接字。客户端使用迭代方式和下面的方法向服务器发送随机数整数。
//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);
使用BufferedWriter
和BufferedReader
的优点是您可以读/写字符串并拥有一个人类可读的文件。使用DataOutputStream
,您将有一个二进制文件,并且您必须自己从/转换为您的数据格式。
关于代码示例:
dis.read();
将返回读取的字节数,而不是实际数据。你可以使用
dis.readInt();