Java:BufferedReader 和 OutputStream

标签 java

我有以下代码,我正在尝试通过套接字发送数据文本。但是当我尝试通过 PrintWriter 发送时,我的客户端什么也不做,它在 in.readLine() 处停止。但是,当我简单地使用 OutputStream 并将其作为字节发送时,我的客户端在读取时没有任何问题。是否可以如我所愿?

        out = new PrintWriter(sock.getOutputStream());
        in = new BufferedReader(new InputStreamReader(sock.getInputStream()));

        while (true) {
            System.out.println("SERVER-THREAD: IP "
                    + sock.getInetAddress().getHostAddress());
            out.write(marshall() + "\n");
            Thread.sleep(1000);
        }

//客户端

            in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            out = new PrintWriter(sock.getOutputStream());

            while (updateList) {
                System.out.println("Before");
                String inputip = in.readLine();
                System.out.println("CLIENT: " + inputip);
                //unmarshall(in);
                System.out.println("After");
                Thread.sleep(1000);
            }

最佳答案

PrintWriter 缓冲要写入的数据,因此在缓冲区已满之前它不会这样做。你需要在这里调用 flush

out.flush();

关于Java:BufferedReader 和 OutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13659812/

相关文章:

java - 程序不会在预期点停止(接收字符串)

java - 使用制表符和换行符解析路径的正则表达式模式?

java - java中数组列表的合并排序

java - org.junit.ComparisonFailure 具有相同的结果

java - 将 tcpdump 添加到 Android 应用程序

java - AWS : Feature flag configurations must be accessed via AWS AppConfig Data's GetLatestConfiguration API

java - 导致意外错误的字符串

java - Springsource Tool Suite导入Spring3.0的jpetstore时maven报错

java - 当对 ArrayList 使用 .get() 时,该类无法将返回的元素识别为所需的对象

java - 如何将 StringBuilder 数组从一个 Activity 传递到另一个 Activity ?