DataOutputStream#writeBytes(String) 与 BufferedWriter#write(String)

2024-03-28

我想为我的报告创建一个 HTML 文件。报告中的内容可以通过使用创建BufferedWriter#write(String)

File f = new File("source.htm");
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write("Content");

或通过使用DataOutputStream#writeBytes(String)

File f = new File("source.htm");
DataOutputStream dosReport = new DataOutputStream(new FileOutputStream(f)); 
dosReport.wrtiteBytes("Content");

其中一个比另一个更好吗?为什么会这样呢?


如果您要写出文本,那么您应该使用Writer,它处理从 unicode 字符(Java 字符串的内部表示形式)到适当的字符编码(例如 UTF-8)的转换。DataOutputStream.writeBytes简单地输出每个的低八位char并完全忽略高位 8 位 - 这相当于代码低于 128(U+007F 及以下)的 ASCII 字符的 UTF-8,但对于 ASCII 以外的任何内容几乎肯定是错误的。

您应该使用 OutputStreamWriter 而不是 FileWriter,这样您就可以选择特定的编码(FileWriter 始终使用平台的默认编码,该默认编码因平台而异):

File f = new File("source.htm");
BufferedWriter bw = new BufferedWriter(
  new OutputStreamWriter(new FileOutputStream(f), "UTF-8"));
bw.write("Content");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataOutputStream#writeBytes(String) 与 BufferedWriter#write(String) 的相关文章

  • 使用递归查找数组中的最大值

    对于我被要求解决的问题之一 我使用 for 循环找到了数组的最大值 所以我尝试使用递归来找到它 这就是我想到的 public static int findMax int a int head int last int max 0 if h
  • 表“DBNAME.hibernate_sequence”不存在

    我有一个使用 spring data jpa 的 Spring Boot 2 0 1 RELEASE 应用程序
  • JMS队列消息接收顺序

    我按顺序在同一目标中添加两条 JMS 消息 这两条消息的接收顺序是否与我添加它们的顺序相同 或者是否有可能进行相反的排序 即首先检索目的地中首先接收到的消息 我将添加到目的地 producer send Msg1 producer send
  • Android WebView - 带有经过身份验证的代理

    我目前正在尝试调试围绕 WebView 构建的 Android 应用程序 我负责处理的开发网络环境 不是我的选择 这是 企业 安全决策 是WPA WiFi 代理服务器 代理身份验证 虽然a上的说明以前的答案非常有帮助 https stack
  • 如何用Spring进行只读和读写的数据库路由

    我正在研究 Spring 中的事务路由 但我的应用程序存在运行时问题 我有两个 MySQL 数据库 一个用于读取 一个用于读 写 但是我的路由配置不起作用 当我应用只读配置时 我没有成功 这是我的配置 pom xml
  • JTable 中的格式化字段问题 - Integer 和 Double 之间的差异

    更新 已确认为错误当 columnClass 为 Double 时 JTable 无法将给定对象格式化为 Number 错误 ID 7051636 https bugs java com bugdatabase view bug bug i
  • GUID 的格式始终相同吗?

    GUID 你会得到类似 aaaef973 d8ce 4c92 95b4 3635bb2d42d5 总是一样吗 它总是具有以下格式吗 8 个字符 4 个字符 4 个字符 4 个字符 12 个字符 我这么问是因为我需要将不带 的 GUID 转换
  • 调用 PHP 爆炸并访问第一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 用于取消引用函数结果的 PHP 语法 https stackoverflow com questions 742764 php syntax for dereferencing function re
  • Android Studio 1.0.1 APK META-INF/DEPENDENCIES 中复制的重复文件

    我安装了 Android Studio 版本 1 0 1 并尝试将我的项目从 eclipse 导入到它 它给了我以下错误 Error Execution failed for task app packageDebug Duplicate
  • 在 Java 中从 Json 字符串中提取字段

    我正在尝试从以下 Json 字符串中提取每个 company id 的 id String test company id 4100 data drm user id 572901936637129135 direct status id
  • LDAP中超时的实现

    我一直在处理我们正在使用的应用程序LDAP获取用户详细信息 有时获取用户详细信息需要更多时间 我想实施time out获取详细信息的方法 以便我们可以避免在最坏的情况下在服务器中挂起事务 这里我们使用的是LdapUtil我们在其中配置的类L
  • java SWT透明复合背景

    我有复合对象 Composite composite new Composite shell SWT NONE composite setBounds new Rectangle 10 10 100 100 我如何使这个组合具有透明背景 我
  • Spring 如何在登录网址上设置动态前缀

    我有一个始终以动态前缀开头的 Spring 应用程序 这是因为我需要该前缀来进行一些内部配置 问题是 当我尝试设置登录页面时 无法传递该前缀并使其工作 如何为我的登录页面设置动态前缀 这是我的 AppController 的一部分 我在其中
  • 如何使用 JAVA 将本地图像而不是 URL 发送到 Microsoft Cognitive Face API

    我正在尝试使用 Microsoft 认知服务的 Face API 我想知道如何通过 Rest API 调用将本地图像发送到 Face API 并使用它请求结果JAVA 有人可以帮我解决这个问题吗 Microsoft 在其网站上提供的测试选项
  • 滚动文件实现

    我一直很好奇滚动文件是如何在日志中实现的 如何开始用任何语言创建一个文件写入类 以确保不超过文件大小 我能想到的唯一可能的解决方案是 write method size file size size of string to write i
  • 在 ant 脚本中包含外部 JAR 时出错

    这是我第一次尝试编写 ANT 脚本 这是我使用 Spring 构建的简单 Hello World 应用程序的 build xml
  • 用 org.Json 解析 Java 中的 JSON?

    我在这方面遇到了很多麻烦 我正在尝试进行更新 并且正在使用从 url 返回此内容的 api JSON downloadUrl URL fileName Name gameVersion Version name Name projectId
  • 如何获取eclipse中的工作空间路径? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在研究PDE Eclipse Plugin Project 我需要获取工作区路径 我的文本小部件 swt 应该设置为当前工作空间路径 如
  • 在 Spring 中以编程方式解析 AliasFor 注释值

    我有一个注释 Target ElementType TYPE Retention RetentionPolicy RUNTIME public interface A Class value 这是在课堂上使用的 B D class publ
  • 当考虑性能时如何从文件中读取整数?

    我正在 CodeEval 上执行一些任务 基本上任务非常简单 打印出从文件中读取的所有整数的总和 我的解决方案如下 import java io File import java io IOException import java io

随机推荐