将字节数组写入txt文件并将其读回

2024-06-28

我有一个字节数组,我需要将其写入 txt 文件。之后我需要从那里读取该字节数组,这里出现了一个问题。我读了这个将Java字符串转换为字节数组 https://stackoverflow.com/questions/5499924/convert-java-string-to-byte-array/5500020#5500020但它仅适用于正数。 这是我有的

public static void main(String args[]) throws UnsupportedEncodingException
{
    byte [] a= new byte [2];
    a[0]=15;
    a[1]=-2;        
    String line = new  String(a, "UTF-8");      
    byte[] b = line.getBytes();
    System.out.println(b[0]);
    System.out.println(b[1]);
}

结果是

15
63

toString()效果不太好。

预先感谢您的帮助。


对我来说,这保留了负值:

package com.sandbox;

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.Arrays;

public class Sandbox {

    public static void main(String args[]) throws UnsupportedEncodingException {
        byte[] a = new byte[2];
        a[0] = 15;
        a[1] = -2;
        String line = new String(a);
        byte[] b = line.getBytes();
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(b));
        System.out.println(Charset.defaultCharset());
    }        
}

对我来说,这输出:

[15, -2]
[15, -2]
windows-1250

基本上,您使用了错误的字符集来保留负字节。您可以在这里找到更多信息。 https://stackoverflow.com/questions/1749064/how-to-find-default-charset-encoding-in-java实际上,您想要做的事情的缺陷是首先将字节放入字符串中。正如你在这里看到的 https://stackoverflow.com/a/1536365/61624,

...如果您从 byte[] 开始并且它实际上不包含文本数据,则不存在“正确的转换”。字符串用于文本,byte[] 用于二进制数据,唯一真正明智的做法是避免在它们之间进行转换,除非绝对必要。

如果您确实必须使用 String 来保存二进制数据,那么最安全的方法是使用 Base64 编码。

如果您实际上不需要将其存储在字符串中,则应该从输入/输出流写入/读取文件。有很多答案向您展示如何做到这一点。

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

将字节数组写入txt文件并将其读回 的相关文章

随机推荐

  • 无法安装 python-docx (MacOS)

    我正在尝试安装docx包裹 但得到以下内容ImportError ImportError cannot import name Document 所以按照建议here https stackoverflow com a 41655815 1
  • 如何从 Jersey-2 请求过滤器访问 wicket 会话?

    在 Jersey 1 x 中 我们从 Jersey 会话属性访问 Wicket 会话 如此处所述https stackoverflow com a 15767824 1399659 https stackoverflow com a 157
  • Perl - Win32 - 如何从另一个进程非阻塞读取文件句柄?

    我正在编写一些通过 STDIN 与客户端进程通信的服务器代码 我正在尝试编写一段 Perl 代码 用于异步接收来自客户端 STDOUT 的响应 代码的阻塞版本可能如下所示 sub read from client my file handl
  • ios 8 相机显示黑屏

    此代码用于从相机中一张一张地捕获图像 但在下次拍摄一张图像后 相机将打开但黑屏 就像它 快门关闭 所有其他 ios 版本都可以工作 但不能在 ios 8 中工作 请告诉我该如何解决呢 void openCamera if PickerHan
  • knex.where容易受到sql注入攻击吗?

    这是一个后续问题https stackoverflow com a 50337990 1370984 https stackoverflow com a 50337990 1370984 它提到knex table where descri
  • 从 VBScript 中访问网络共享,例如 FileSystemObject

    有没有一种好方法可以使用替代凭据 而不是运行 VBS 脚本的凭据 从 VBS 脚本内访问网络共享 目的是执行两项任务 以编程方式导航远程共享文件结构 以确认存在多个远程文件 并将一个文件复制到另一个文件上 都是远程文件 将文件从本地驱动器
  • Html 中的过滤表行

    我创建了一个 html 页面 其中包含搜索文本和下表 表中包含一些数据 我使用了可用的代码JSFiddle http jsfiddle net 7BUmG 2 但这没有用 请提出类似于所示示例的建议 我使用简单的 html CSS 和 Ja
  • Netbeans:尝试加载文件但未找到(Java)

    当我尝试在 Netbeans 6 9 中使用 Java 加载文件时 每次都会遇到同样的问题 好像没有找到这些文件 我收到错误 java lang NullPointerException 在这种情况下 File file new File
  • 页面不等待 SweetAlert 确认窗口的响应

    我正在尝试升级我的 JavaScriptconfirm 使用的动作甜蜜警报 https sweetalert js org 目前我的代码是这样的 a href delete php id 100 Delete a 这将等待用户确认 然后再导
  • NDB 层次结构和实体组的 GAE 影响

    我试图更好地理解中描述的深层层次结构的含义GAE NDB 文档 https developers google com appengine docs python ndb entities 例如 属于 所有者的消息的修订版可能有一个看起来像
  • com.sun.mail.smtp.SMTPAddressFailedException:554 5.7.1 :客户端主机被拒绝:访问被拒绝

    我正在尝试使用 JavaMail 发送邮件 properties put mail smtp host smtp estudiantes ve properties put mail smtp starttls enable true pr
  • 实体框架在判别器上做案例

    有没有办法将内部查询转换为子类 如果我只查询单个子类 我会这样做 auctions OfType
  • 如何使用 Mapkit 在 iPhone 中显示离线地图

    如何使用mapkit在iPhone中显示离线地图 如果我使用静态图像 那么我如何获取当前位置并在其上放置针 任何人有想法请提出一些解决方案 谢谢 试试这个帖子强制 MapKit 仅使用缓存的地图图块 以编程方式禁用网络 https stac
  • 合并从循环返回的 numpy 数组

    我有一个生成 numpy 数组的循环 for x in range 0 1000 myArray myFunction x 返回的数组始终是一维的 我想将所有数组组合成一个数组 也是一维的 我尝试了以下操作 但失败了 allArrays f
  • 使用 jQuery 检查 ASP.NET 复选框

    我有以下 ASP NET 服务器控件复选框
  • 当我们通过 Facebook 登录时如何删除 Facebook Cookie

    我在我的网站中提供了一个社交身份验证链接 我的问题是 如果我通过 facebook 登录并从我的应用程序注销 但仍然是 facebook 的c usercookie在那里 如何从其他域删除cookie 因为它跟踪用户 我正在使用java 情
  • 对象预期错误、javascript、jQuery

    我在 javascript 文件中收到一个对象预期错误 在这种情况下 这是否意味着 jQuery 文件未正确包含 导致错误的行是 function 浏览器中的错误是 Message Object expected Line 6 Char 1
  • 如何使用 Delphi 并行检查拼写?

    我有一种用 Delphi 编写的拼写检查器 它逐句分析文本 它在解析每个句子后根据一些规则对错误的项目进行着色 用户能够中断此过程 这一点很重要 我如何使用一些第 3 方 Delphi 库并行化这个过程 在当前状态下 我在检查后已经对句子进
  • 如何增加 RStudio 编辑器大小?

    在 Eclipse 中 我可以在编辑器中输入时按 Ctrl M 以全屏显示编辑器并暂时隐藏所有侧窗口 有没有办法在 RStudio 中实现这一目标 窗口的代码编辑器部分非常小 但我不想手动摆弄鼠标来调整控制台 绘图 工作区窗口的大小 视图菜
  • 将字节数组写入txt文件并将其读回

    我有一个字节数组 我需要将其写入 txt 文件 之后我需要从那里读取该字节数组 这里出现了一个问题 我读了这个将Java字符串转换为字节数组 https stackoverflow com questions 5499924 convert