dataoutputstream乱码怎么办
dataoutputstream乱码的解决办法:1、通过“dos.write("...".getBytes());”方式写入String;2、设置“new OutputStreamWriter(new FileOutputStream(file), "utf-8");”即可。
本教程操作环境:Windows10系统、Java8.0版、Dell G3电脑。
dataoutputstream乱码怎么办?
解决DataOutputStream乱码的问题
这个坑我就先踩为敬了,重要的话说三遍!
千万不要用DataOutputStream的 writeBytes 方法
千万不要用DataOutputStream的 writeBytes 方法
千万不要用DataOutputStream的 writeBytes 方法
我们使用 DataOutputStream 的时候,比如想写入String ,你就会看到三个方法
public final void writeBytes(String s) public final void writeChars(String s) public final void writeUTF(String str)
OK,那你试着去写入相同的内容后,再去读取一下试试
File file = new File("d:"+File.separator+"test.txt"); DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeBytes("你好"); dos.writeChars("你好"); dos.writeUTF("你好"); dos.flush(); dos.close(); DataInputStream dis = new DataInputStream(new FileInputStream(file)); byte[] b = new byte[2]; dis.read(b); // `} System.out.println(new String(b, 0, 2)); char[] c = new char[2]; for (int i = 0; i < 2; i++) { c[i] = dis.readChar(); } //你好 System.out.println(new String(c, 0, 2)); //你好 System.out.println(dis.readUTF());
是的,你没看错,writeBytes方法写入的内容读出来,为啥乱码了?
点进去看看实现
public final void writeBytes(String s) throws IOException { int len = s.length(); for (int i = 0 ; i < len ; i++) { out.write((byte)s.charAt(i)); } incCount(len); }
大哥,这char类型被强转为 byte类型了,失精度了呀,怪不得回不来了,所以使用的时候千万别贪方便,老老实实换成 dos.write("你好".getBytes()); 都好的呀
DataOutputStream写入txt文件数据乱码
这是正常的,如果要读,要用DataInputStream读出,如果仅要保成文本文件直接要FileOutputStream或PrintWriter
OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "utf-8"); oStreamWriter.append(str); oStreamWriter.close();
主要是编码方式不一样
要用字符流 而非字节流
BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符,数组和行
推荐学习:《Java视频教程》
以上是dataoutputstream乱码怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

word页码乱码的解决办法:1、打开word文档,点击左上角的“文件”选项;2、选择“更多”选项,再点击“选项”按钮;3、在word选项中选择“高级”;4、在“显示文档内容”中找到“显示域代码而非域值”,去掉前方的勾选,并点击确定,回到主页即可。

Linux中文乱码问题是使用中文字符集和编码时常见的一个问题。出现乱码的原因可能是文件编码设置不正确,系统语言环境未安装或未设置,以及终端显示配置错误等。本文将介绍几种常见的解决方法,并提供具体的代码示例。一、检查文件编码设置使用file命令查看文件编码在终端中使用file命令,可以查看文件的编码:file-ifilename如果输出中有"charset

tomcat启动乱码的解决办法:1、修改Tomcat的conf配置文件;2、修改系统语言;3、修改命令行窗口编码;4、检查Tomcat服务器配置;5、检查项目编码;6、检查日志文件;7、尝试其他解决方案。详细介绍:1、修改Tomcat的conf配置文件,打开Tomcat的conf目录,找到"logging.properties"文件等等。

linux tty中文乱码的解决办法:1、通过“sudo apt-get install fbterm”命令下载字体fbterm;2、执行“sudo fbterm”命令;3、更改字体和字体大小为“font-names=Ubuntu Mono font-size=14”即可。

在Windows10系统中,出现乱码现象可谓是司空见惯。这背后的原因往往在于该操作系统并未对部分字符集提供默认的支持,抑或是设定的字符集选项存在错误。为了对症下药,以下我们将为您详细解析实际的操作规程。windows10乱码怎么解决1、打开设置,找到“时间和语言”2、再找到“语言”3、找到“管理语言设置”4、点击这里的“更改系统区域设置”5、如图勾选上然后点击确定就可以了。

win11文本文档乱码怎么解决?很多用户在使用win11系统的时候出现了文本文档乱码的情况而导致无法正常的进行阅读,出现这个问题很多小伙伴都不知道该如何解决。其实这个方法并不难,下面小编整理了windows11系统文档乱码解决步骤,希望能够给大家带来一点启发!windows11系统文档乱码解决步骤1、首先,打开win11的控制面板,在下面的搜索框中输入控制面板,点击搜索,进入控制面板。2、进入面板后,找到时钟和区域并点击进入,再点击区域选项。3、进入后,点击管理面板,然后再点击更改系统区域设置。

有很多的用户们在使用电脑的时候,会发现有很多的文件的尾缀是dll,但是很多的用户们都不知道这种文件需要怎么打开,想要知道的用户们快来看看以下详细教程吧~dll文件怎么打开编辑:1、下载一个叫做“exescope”的软件,并下载安装。2、然后右键dll文件,选择“用exescope编辑资源”。3、然后在弹出的错误提示框中,点击“确定”。4、然后在右边的面板上,点击每个组前面的“+”号可以查看到它所包含的内容。5、点击需要查看的dll文件,就能够看到了,然后点击“文件”,选择“导出”。6、然后就能够

有些朋友想要打开一个记事本,发现自己的win11记事本乱码,不知道怎么办,其实我们一般只需要修改区域和语言就可以了。win11记事本乱码:第一步,使用搜索功能,搜索并打开“控制面板”第二步,点击时钟和区域下的“更改日期、时间或数字格式”第三步,点击上方的“管理”选项卡。第四步,点击下方“更改系统区域设置”第五步,将当前系统区域设置改为“中文(简体,中国)”并“确定”保存即可。
