从缓冲区读取时省略换行符

2023-11-27

我编写了以下代码:

public class WriteToCharBuffer {

 public static void main(String[] args) {
  String text = "This is the data to write in buffer!\nThis is the second line\nThis is the third line";
  OutputStream buffer = writeToCharBuffer(text);
  readFromCharBuffer(buffer);
 }

 public static OutputStream writeToCharBuffer(String dataToWrite){
  ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(byteArrayOutputStream));
  try {
   bufferedWriter.write(dataToWrite);
   bufferedWriter.flush();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return byteArrayOutputStream;
 }

 public static void readFromCharBuffer(OutputStream buffer){
  ByteArrayOutputStream byteArrayOutputStream = (ByteArrayOutputStream) buffer;
  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(byteArrayOutputStream.toByteArray())));
  String line = null;
  StringBuffer sb = new StringBuffer();
  try {
   while ((line = bufferedReader.readLine()) != null) {
    //System.out.println(line);
    sb.append(line);
   }
   System.out.println(sb);
  } catch (IOException e) {
   e.printStackTrace();
  }

 }
}

当我执行上面的代码时,输​​出如下:

This is the data to write in buffer!This is the second lineThis is the third line

为什么会跳过换行符 (\n)?如果我取消注释System.out.println()如下:

while ((line = bufferedReader.readLine()) != null) {
        System.out.println(line);
        sb.append(line);
       }

我得到正确的输出:

This is the data to write in buffer!
This is the second line
This is the third line
This is the data to write in buffer!This is the second lineThis is the third line

这是什么原因呢?


JavaDoc Says

public String readLine()
                throws IOException

读取一行文本。一行被视为由换行符 ('\n')、回车符 ('\r') 或回车符后紧跟换行符之一终止。
Returns:
包含行内容的字符串,不包括任何行终止字符,如果已到达流末尾,则返回 null
投掷:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从缓冲区读取时省略换行符 的相关文章

  • Jackson反序列化SNS消息错误MismatchedInputException

    我正在编写一个通过 SNS HTTP 请求处理来自 Amazon Simple Email Service 的回调的功能 我想将亚马逊提供的消息解析为本地对象结构 问题是 SNS 将 JSON 消息包装成字符串 并且 Jackson 无法解
  • 将双精度转换为二进制表示形式?

    我尝试将双精度数转换为其二进制表示形式 但使用此Long toBinaryString Double doubleToRawLongBits d 没有帮助 因为我有大量数字 Long 无法存储它们 即2 900 Long toBinaryS
  • java.io.IOException: EnsureRemaining: 仅剩余 0 个字节,尝试读取 1

    我在 giraph 中的自定义类方面遇到一些问题 我制作了 VertexInput 和 Output 格式 但总是收到以下错误 java io IOException ensureRemaining Only bytes remaining
  • 使用 WebDriver 暂时绕过隐式等待

    当使用隐式等待时 正如这里所建议的 https stackoverflow com a 10950905 56285 我仍然有时想要断言即时元素不可见或不存在 换句话说 我know有些元素应该隐藏 并希望我的测试做出这样的断言fast 而不
  • 如何将 Struts 2 与 Velocity 和 Tiles 结合使用

    有人能够获得与 struts 2 一起使用的速度和图块吗 我在网上查找示例或教程时遇到一些问题 从我从邮件列表中收集到的信息来看 这似乎根本不可能 但邮件已经很旧了 https struts apache org docs tiles pl
  • Java 增强型 For-Loop 比传统的更快?

    所以我的理解是 增强的 for 循环应该更慢 因为它们必须使用迭代器 但是我的代码提供了混合结果 是的 我知道循环逻辑占用了循环中花费的大部分时间 对于少量迭代 100 1000 增强的 for 循环在使用和不使用 JIT 的情况下似乎都要
  • 如何在我的 HttpClient 执行器中遵循单一职责原则?

    我在用RestTemplate http docs spring io spring docs current javadoc api org springframework web client RestTemplate html as
  • IDEA:javac:源版本1.7需要目标版本1.7

    使用 IntelliJ IDEA 运行 JUnit 测试时 我得到 我该如何纠正这个问题 使用SDK 1 7 模块语言级别为1 7 Maven 构建工作正常 这就是为什么我相信IDEA配置问题 您很可能在此处从 Maven 导入了不正确的编
  • 在JAVA中将数据写入.txt文件?

    我想知道是否是在JAVA中将计算的数据写入文本文件 我的 JAVA 代码是一个基于 GUI 的 gpa 计算器 我只想添加一个 JButton 和 ActionListener 它将类名 GPA 点和计算出的 GPA 写入 txt 文件 这
  • 使用 JPA 存储库保留 Spring Batch ItemWriter 的问题

    我对春季批次有疑问ItemWriter它依赖于 JPA 存储库来更新数据 这里是 Component public class MessagesDigestMailerItemWriter implements ItemWriter
  • JS 中的 .Jar 文件

    有谁知道如何在 JS 中访问 jar 文件 我已经用 Java 创建了类并作为 jar 文件导入 我想从 JS 文件访问该类 大家好 我感谢你们所有人 我尝试在 Firefox XUL 中使用 JS 列出文件夹中的文件 但我做不到 然后我决
  • 有没有办法防止 Spring Boot 覆盖 bean?

    与春天的抽象可刷新应用程序上下文 http docs spring io spring docs current javadoc api org springframework context support AbstractRefresh
  • 正确的单元测试技术

    在使用 TDD 时 我发现自己需要测试一个包含查找值的常量 最终 哈希图 请查看更新中出现这种情况的原因 见下文 private static final Map
  • JAVAFX 缩放、ScrollPane 滚动

    I have JAVAFX application with zoom and scale as described here Scale at pivot point in an already scaled node https sta
  • Web 服务返回 java.lang.reflect.InitationTargetException

    我在向 java web 服务发出请求时收到上述消息 我们最初创建了一个 Java 控制台应用程序并手动提交了一个 xml 文件 当将其作为 Java 应用程序运行时 将使用 System out println 成功创建并显示响应 我们通
  • 如果垃圾收集器没有删除未引用的对象,它们还能运行吗?

    如果一个对象正在等待垃圾收集 但包含一个在该对象的最后一个引用更改时正在运行的线程 那么该线程是否仍会运行并且代码是否仍会执行 那么您是否可能有一堆应该删除的幽灵对象 但它们对您的代码产生了影响 你如何防止这种情况发生 有没有办法让对象知道
  • 在Java中将32bpp图像转换为16bpp图像

    如何使用 Java 库将 32bpp 图像 ARGB 转换为 16bpp 图像 ARGB 出于我的好奇 在像素级别 这种转换有什么作用 如果我有一个保存像素值 包含所有通道 的 int 值 那么在转换发生后该 int 会有什么不同 32 位
  • 如何在Java中添加两个“卡”的值?

    我正在开发一个项目来模拟二十一点游戏中的第一笔交易 到目前为止 程序创建了两张随机等级 ACE 到 KING 和随机花色的牌 我正在努力创建一个切换表或 if else 梯形图 将两张卡的附加值分配为可变分数 下面的代码从概念上代表了我想要
  • java 更新进度条

    我有一个 JFrame 和以下组件 JButton jButton1 Progress Bar ProgressBar 及其公共静态 JLabel 状态及其公共静态 单击按钮时会执行不同的语句 我想在每个语句后更新我的进度条 这是我的代码
  • 只有创建视图层次结构的原始线程才能触摸其视图。在安卓上[重复]

    这个问题在这里已经有答案了 我只是一个初学者 所以请原谅我问一个可能愚蠢的问题 我不明白只有创建视图层次结构的原始线程才能触摸其视图的含义 请有人告诉我为什么会发生此错误以及如何解决此问题 ThankYou 这是我的班级 public cl

随机推荐

  • Google Apps 脚本:如何检查日历事件是否已被手动标记为删除

    我编写了一个 Google Apps 脚本 它将电子表格中保存的事件添加到谷歌日历中 每个事件都会存储日历事件的 ID 以便在电子表格中的事件发生修改时可以更新它 该事件仍然可以在日历中手动删除 因此我希望脚本能够检测到这一点并重新创建该事
  • Spring-boot tomcat 只能提供少于 10,000 个连接?

    我正在使用 spring boot 测试服务器 然而 我在测试过程中遇到了一些问题 我的测试是 随着 Web 套接字会话 客户端数量 的增加 服务器使用多少内存 1 000 个客户端 少于 9000 个会话 进行测试没有问题 但是 当我尝试
  • 如何使用spring的MockMultipartHttpServletRequest?得到“未找到多部分边界”

    显然我没有正确使用这个测试装置 我的 servlet 在 tomcat 中工作得很好 但是当我尝试使用这个模拟时 找不到多部分边界 请求被拒绝 因为未找到多部分边界 有一个答案here显示了如何使用文本文件来使用它 但该答案显式设置了边界字
  • 从 python 中的文件中读取逗号分隔的元组

    我正在尝试从一个文件中读取多个用逗号分隔的元组 示例输入文件如下所示 0 0 0 2 0 4 1 1 0 2 1 1 1 3 1 1 1 3 1 1 1 3 1 5 2 0 2 2 3 3 2 4 3 5 4 4 5 3 6 4 5 5 7
  • 使用 ORMLite 和输出参数的 ServiceStack MARS(多个活动结果集)

    ServiceStack ORMLite 很棒 我通常会避开 ORM 心态 更喜欢构建数据库 因为构建数据库而不是 1 1 类模型更有意义 也就是说 有几件事我似乎遇到了困难 我确信这只是我的无知 First 有没有办法使用 ORMLite
  • 使用 itms-services URL 的 iOS8 应用程序无线 (OTA) 安装失败

    对于所有早期版本的 iOS 我都使用 itms services URL 无线安装测试 iOS 应用程序 OTA 现在 我的所有 iOS8 设备在尝试使用这种方法安装应用程序时都会失败 示例网址 itms services action d
  • 有没有像 Django 的 XAMPP 这样的多合一软件包?

    与 XAMPP 一样 您只需安装它并开始开发 因为 PHP MySQL Apache 等都在那里 Django 有类似的东西吗 附 我的意思只是为了在本地计算机上进行开发而不是为了部署 我见过的最接近的是Bitnami 的 DjangoSt
  • VB.Net调用New而不赋值

    In C 我可以做这个 new SomeObjectType abc 10 换句话说 我可以调用 new 而无需将创建的实例分配给任何变量 然而 在VB Net看来我不能做同样的事情 New SomeObjectType abc 10 sy
  • 如何将车把中的字符串解析为html [重复]

    这个问题在这里已经有答案了 我正在尝试将车把中的字符串解析为 html 例子 在 js file let url http google com let textref a href url Click here a in hbs file
  • 如何从 R 中的命名数值向量中检索简单的数值?

    我正在使用 R 来计算一些基本的统计结果 我正在使用 quantile 函数来计算数据框列上的分位数 如下所示 gt quantile foobars 1 0 25 50 75 100 189000 194975 219500 239950
  • 如何防止页面在表单提交后重新加载 - JQuery

    我正在为我的应用程序开发课程开发一个网站 但我遇到了最奇怪的问题 我正在使用一些 JQuery 将表单数据发送到名为 process php 的 php 页面 然后将其上传到我的数据库 奇怪的错误是 页面在提交表单后重新加载 而我或我的一生
  • 在 ggplot2 中向等值线图添加点

    我正在查看 Hadley Wickham 的以下示例ggplot2 library ggplot2 library maps states lt map data state arrests lt USArrests names arres
  • 给定一个任意的 javascript 对象,我如何找到它的方法?

    我知道这在 python 中是可能的 但是我可以获得 javascript 对象的方法列表吗 您可以循环对象中的属性并测试它们的类型 for var prop in whatever if typeof whatever prop func
  • 在文件夹迭代上实施 RAII

    我编写此代码是为了递归地循环遍历文件夹树并列出文件及其大小 以字节为单位 由于我使用的是 winapi 并且有一个Handle应该打开和关闭 我应该在此代码上实现 RAII 问题是在线论坛中给出的示例 更不用说我不是以英语为母语的人 并且包
  • 数据库表的位置 - MySQL - Windows XP

    All 这是我第一次使用 MySQL 因此列出了所有步骤 这实际上是 MySQL 的重新安装 因为我的第一次尝试失败了 我已在我的计算机上安装了最新版本的 MySQL Community Server 安装文件夹是C Program Fil
  • 如何在Java程序中使用Sqoop?

    我知道如何通过命令行使用 sqoop 但不知道如何使用java程序调用sqoop命令 谁能提供一些代码视图吗 您可以通过在类路径中包含 sqoop jar 并调用Sqoop runTool 方法 您必须以编程方式创建 sqoop 所需的参数
  • tan 45 给我 0.9999

    为什么tan 45 0 7853981633974483 弧度 给我0 9999 下面的代码有什么问题 System out println Math tan Math toRadians 45 0 我不认为这里有任何错字 那么这里的解决方
  • PHP MySQL连接持久化

    我读过很多关于 PHP 和 MySQL 之间的持久数据库连接 mysql connect 与 mysql pconnect 的内容 与 PDO 和 MySQLi 相同 这绝对是我对这一点缺乏了解 但是数据库连接如何在网页之间保持持久呢 在此
  • 如何使用 AngularJS 对多个对象应用过滤器?

    我的用户对象定义如下 scope users id 1 name Adam friends name John age 21 sex M name Brad age 32 sex M 然后我有以下代码 div div user name f
  • 从缓冲区读取时省略换行符

    我编写了以下代码 public class WriteToCharBuffer public static void main String args String text This is the data to write in buf