`
wxinpeng
  • 浏览: 590851 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

PrintWriter 类中println和write方法的区别

阅读更多

问题:编写Socket聊天软件,使用PrintWriter类取得Socket对象的输出流,使用println和write两个方法来完成向输出流中写出,用println没有问题,但是用write没有反应,即写出去后,对方读不到。

 

Google查了一下,问题解释如下:

 

为什么客户端调用了write()和flush()后,服务器端依然read不到数据。因为socket.getOutputStream()取到的实现类是java.net.SocketOutputStream,这个类并没有覆写flush方法,它的父类java.io.FileOutputStream也没有覆写,于是最终就调到了最顶层java.io.OutputStream的flush()方法,这就恶心了,这个方法是空的。于是...

因此,还是使用Reader.readLine()和Writer.println()来处理socket吧,或者直接使用NIO。

(注意,SocketOutputStream类在JavaDoc中不存在,只在源码中有,他是个受保护的类。)

分享到:
评论

相关推荐

    java写入txt PrintWriter FileOutputStream

    `PrintWriter`是Java.io包中的一个类,它提供了方便的打印方法,如`println()`,用于向输出流写入字符数据。以下是使用`PrintWriter`写入TXT文件的基本步骤: 1. 创建`File`对象,表示要写入的TXT文件路径。 ```...

    浅谈PrintStream和PrintWriter的区别和联系

    PrintStream和PrintWriter都是Java中的输出流类,但它们之间存在着一些区别和联系。本篇文章将通过示例代码详细介绍这两者之间的区别和联系,希望能够对大家的学习或者工作产生一定的参考价值。 首先,PrintStream...

    人工智能-项目实践-搜索引擎-java实验1-实现搜索引擎的倒排索引数据结构

    如果写文本文件,推荐使用PrintWriter,当创建好PrintWriter对象后,调用其println和print方法可以将字符串一行行的写入到文本文件,使用方法与System.out.println, System.out.print完全一样 具体使用方法,请见...

    Java中的PrintWriter 介绍_动力节点Java学院整理

    PrintWriter还提供了自动flush功能,即每次执行print()、println()、write()函数时,都会调用flush()函数,以确保数据的及时写入。这可以提高程序的效率和可靠性。 PrintWriter的格式化功能是通过Formatter类实现的...

    Java写入文件的几种方法共8页.pdf.zip

    3. **PrintWriter**: `java.io.PrintWriter` 类提供了一种格式化输出文本的方法,它可以处理字符串、数字和其他对象。与 `BufferedWriter` 类似,我们可以通过传递 `FileOutputStream` 或 `FileWriter` 实例来创建 `...

    WriteTextFiles.rar

    在Java编程语言中,`PrintWriter`和`FileWriter`都是用于向文件写入文本的类,它们在处理文本输出时各有特点。本教程将详细探讨这两个类的使用方法、异同以及如何在实际编程中结合运用。 首先,让我们了解`...

    ReadWrite_CSV_Java_example.zip_On Writing

    本项目“ReadWrite_CSV_Java_example”旨在演示如何在Java中读取和写入CSV文件。下面将详细阐述相关知识点。 1. CSV文件格式:CSV是一种通用的文件格式,用于存储表格数据,如电子表格或数据库。每一行被视为一个...

    Java IO 工具类大全

    这两个类用于输出格式化的文本,提供了打印各种类型数据的方法,如`println()`,并且它们有错误处理机制,即使在输出过程中发生异常,也不会关闭输出流。 十一、Reader和Writer的close()方法 在完成流操作后,记得...

    java editor 保存文件

    本主题将深入探讨“Java编辑器保存文件”的过程,结合提供的标签“源码”和“工具”,我们将讨论如何在Java应用中实现文件保存功能,并涉及到与之相关的类和方法。 首先,`TestToogleSectionDialog.java`和`...

    JAVA文件操作类和文件夹的操作.docx

    - 示例代码中没有展示如何写入文件内容,但通常会使用 `PrintWriter` 的 `write()` 或 `println()` 方法将数据写入文件。 了解这些核心概念后,开发者可以有效地在Java中执行文件和目录操作,满足各种文件系统的...

    java零基础自学 之 JavaIO流处理

    总的来说,Java IO流处理提供了丰富的类和方法,使得我们可以方便地处理各种数据输入输出任务,无论是文本、二进制文件,还是网络通信、对象序列化,甚至是线程间的数据传递。理解并熟练掌握这些基础知识,对于提升...

    图书管理JAVA小程序.doc.doc

    - 异常处理:在`write()` 方法中使用了try-catch语句来捕获可能发生的异常,如文件无法打开或写入时出现的问题。 5. **控制流**: - 循环结构:在`add()`, `select()`, 和 `delete()` 方法中,使用`for`循环遍历`...

    java输入输出流

    在实际应用中,我们通常会使用这些抽象类的子类,比如`FileInputStream`、`FileOutputStream`、`BufferedReader`和`PrintWriter`等,它们提供了更高级的功能和性能优化。例如: - `BufferedReader`是`Reader`的子类...

    JAVA基础实用知识

    在Java中,我们通常使用`System.out.println()`或`PrintWriter`类来实现标准输出。学习如何向控制台、文件或其他输出流写入数据是初学者必须掌握的基本技能。 `变量.html`是指Java中的变量,它们是存储数据的容器。...

    java读写文件

    通过本文介绍,我们了解了Java中处理文本文件的基本方法,包括`Reader`和`Writer`类的使用,以及如何利用缓冲技术提高文件读写效率。此外,还介绍了如何使用`PrintWriter`来简化文件写入过程。掌握这些知识,对于...

    Java读写文本文件的示例代码

    总结一下,Java中的文本文件操作主要包括使用`BufferedReader`读取文件,使用`PrintWriter`或`BufferedWriter`写入文件,以及使用`File`类的`delete()`方法删除文件。这些基本操作构成了Java文件I/O的基础,是每个...

    java中多种方式读文件,追加文件内容,对文件的各种操作

    可以使用`FileReader`和`InputStreamReader`类,配合`Reader`接口的`read()`方法。这会处理字符编码,适合读取包含文本的文件。 ```java FileReader fr = new FileReader(fileName); int tempchar; while (...

Global site tag (gtag.js) - Google Analytics