关于BufferedWrite和PrintWrite的问题

问题描述

为什么我把BufferedWrite改为PrintWrite方法,并将write方法改为println方法就可能够顺利在Server端和Client端通话?图中的代码就不行?

解决方案

解决方案二:
PrintWrite的println接收的是一行数据,就是有回车的,你的服务器端读取的是一行数据,没有回车会阻塞。
解决方案三:
客户端的println方法会在最后加上一个回车n,而服务器端的readLine方法刚好必须读取到一个n才会完成。客户端和服务器端就这样达成了一个协议。
解决方案四:
readLine是阻塞式的,当读入的内容是空或没有读到换行符(n,r,rn)系统会认为还没有读满一行数据,就阻塞了,后面的代码就不继续执行了。你可以在客户端和服务器端发送的数据后加个"n"试试应该就可以了。另外友情提示下,以后贴代码别截图,别人想调试还得一行一行的敲下你的代码。你给别人创造遍历,别人才能更好的回答你。

时间: 2024-08-01 21:15:49

关于BufferedWrite和PrintWrite的问题的相关文章

彻底明白Java的IO系统

转自--豆豆技术网络(http://www.ddvip.net/program/java/index1/61.htm) 一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型:1.1 以字节为导向的stream以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息.以字节为导向的stream包括下面几种类型:

Java语言中的IO系统

  Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等.Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入.在具体使用中很多初学者对Java.io包的使用非常含糊,本文将详细解说关于Java.io的使用. 1.stream 代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO系统中,所有的stream(包括Input和Out stream)都包括两种类型: 1.1以字节为导向的stream 以字

java中的new BufferedReader(new InputStreamReader(System.in))

流 JAVA /IO 基本小结  通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))   java的IO是基于流(stream)概念的,什么是流呢,作为初学者, 我是这样理解的,在各个应用之间传送的是BITS,这些BIT可已被认为是流体,可以就认为是水流,那么用来在各个水源之间转移水的工具应该选择什么呢?一般情况下,水管是可以的,所以数据我将数据源比作水源,将流对象比作水管 这样就有了对流的第一步认识,它再也不神秘了.

java的new BufferedReader(new InputStreamReader(System.in))

流 JAVA /IO 基本小结  通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in)) /***  *** 看到这篇文章挺好的,就转了.版式我改了一下,方便阅读. *** @authordjy1992 ***/   java的IO是基于流(stream)概念的,什么是流呢,作为初学者, 我是这样理解的,在各个应用之间传送的是BITS,这些BIT可已被认为是流体,可以就认为是水流,那么用来在各个水源之间转移水的工具应该选择

java基础知识I/O流使用详解_java

"流"概念源于UNIX中的管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等,它屏蔽了实际的I/O设备中处理数据的细节.   一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL. 流的方向是重要的,根据流的方向,流可以分为两类:输入流和输出流.其实输入/输出是想对于内存来说的.实际上,流的源端和目的端可简单地看成是字节的生产者和消费者,对于输入流,可不必

JSP入门初级教程之预定义变量的使用

js|变量|教程    JSP表达式和scriptlets中的代码,提供了8种自动定义的变量,有时称做implicit objects(固有对象).它们是:request,response,out,session,application,config,pageContext,和 page.下面我们来详细的了解它们.    request     与request相联系的是HttpServletRequest类,使您可以得到request的参数(通过getParameter方法),request

Java 程序编码规范

编码|程序|规范 Java 程序编码规范 李小敏www.yway.com 软件工程师2000年12月内容: 命名惯例 Java文件样式 代码编写格式 程序编写 编程技巧 Swing 调试 性能 可移植性 参考资料 作者简介    所有的程序开发手册都包含了各种规则.一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的.这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑.命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性

JSP教程(三)--JSP中”预定义变量”的使用

js|变量|教程 为了简化JSP表达式和scriptlets中的代码,提供了8种自动定义的变量,有时称做implicit objects(固有对象).它们是:request,response,out,session,application,config,pageContext,和 page.下面我们来详细的了解它们. request 与request相联系的是HttpServletRequest类,使您可以得到request的参数(通过getParameter方法),request 的类型(GE

JSP预定义变量的使用

js|变量 JSP表达式和scriptlets中的代码,提供了8种自动定义的变量,有时称做implicit objects(固有对象).它们是:request,response,out,session,application,config,pageContext,和 page.下面我们来详细的了解它们. request 与request相联系的是HttpServletRequest类,使您可以得到request的参数(通过getParameter方法),request 的类型(GET,POST,