可以将 FileOutputStream 转换为字节数组吗?

2024-02-20

我想将 FileOutputStream 转换为字节数组,以便在两个应用程序之间传递二进制数据。请问有人可以帮忙吗?


要将文件转换为字节数组,请使用 ByteArrayOutputStream 类。此类实现一个输出流,其中数据写入字节数组。当数据写入缓冲区时,缓冲区会自动增长。可以使用 toByteArray() 和 toString() 检索数据。

要将字节数组转换回原始文件,请使用 FileOutputStream 类。文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。

以下代码已经过充分测试。

 public static void main(String[] args) throws FileNotFoundException, IOException {
            File file = new File("java.pdf");

            FileInputStream fis = new FileInputStream(file);
            //System.out.println(file.exists() + "!!");
            //InputStream in = resource.openStream();
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            byte[] buf = new byte[1024];
            try {
                for (int readNum; (readNum = fis.read(buf)) != -1;) {
                    bos.write(buf, 0, readNum); //no doubt here is 0
                    //Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
                    System.out.println("read " + readNum + " bytes,");
                }
            } catch (IOException ex) {
                Logger.getLogger(genJpeg.class.getName()).log(Level.SEVERE, null, ex);
            }
            byte[] bytes = bos.toByteArray();

            //below is the different part
            File someFile = new File("java2.pdf");
            FileOutputStream fos = new FileOutputStream(someFile);
            fos.write(bytes);
            fos.flush();
            fos.close();
        }

如何使用 FileOutputStream 将字节数组写入文件。 FileOutputStream 是用于将数据写入 File 或 FileDescriptor 的输出流。

public static void main(String[] args) {

        String s = "input text to be written in output stream";

        File file = new File("outputfile.txt");

        FileOutputStream fos = null;

        try {

            fos = new FileOutputStream(file);

            // Writes bytes from the specified byte array to this file output stream 
            fos.write(s.getBytes());

        }
        catch (FileNotFoundException e) {
            System.out.println("File not found" + e);
        }
        catch (IOException ioe) {
            System.out.println("Exception while writing file " + ioe);
        }
        finally {
            // close the streams using close method
            try {
                if (fos != null) {
                    fos.close();
                }
            }
            catch (IOException ioe) {
                System.out.println("Error while closing stream: " + ioe);
            }

        }

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

可以将 FileOutputStream 转换为字节数组吗? 的相关文章

随机推荐

  • 如何在 C# 中执行结构体内联初始化?

    我应该在我的任意结构中实现什么成员才能使以下分配成为可能 public struct MyStruct String s Int length MyStruct myStruct new MyStruct s Hello length 5
  • 如何在 ASP.NET Core 中返回 401 而不是 302?

    我试图让 ASP NET Core Identity 在用户未登录时返回 401 我添加了一个 Authorize 属性到我的方法 而不是返回 401 而是返回 302 我尝试了很多建议 但似乎没有任何效果 包括services Confi
  • 从 JComboBox 渲染器获取工具提示

    我有一个扩展 JPanel 的 ComboBox 渲染器并有两个标签 在这里 我需要在鼠标移至时显示工具提示图标标签仅有的 如果鼠标在标签项不应显示工具提示 import java awt Color import java awt Com
  • asyncio matplotlib show() 仍然冻结程序

    我希望运行模拟当在同时在绘图中输出其进度 我一直在研究很多线程和多重处理的示例 但它们都非常复杂 所以我想用Python的新asyncio图书馆这应该更容易 我找到了一个例子 如何在异步函数中使用 yield https stackover
  • 如何根据书籍的条形码编号查找有关书籍的数据? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在构建世界上最简单的图书馆应用程序 我想要做的就是使用典型的扫描仪 只需将条形码的数字输入到字段中
  • Python 请求:POST 请求删除授权标头

    我正在尝试使用 Python requests 库发出 API POST 请求 我正在经过一个Authorizationheader 但是当我尝试调试时 我可以看到 header 被删除 我不知道发生了什么事 这是我的代码 access t
  • Android setOnclicklistener 参数

    我是android的初学者 在为按钮设置onclick监听器时 传递的参数是什么意思 btn1 setOnClickListener new OnClickListener Override public void onClick View
  • MySQL php 表的线性插值

    I have a table titled psytable moist air shown below 我正在尝试开发一个 MySQL 语句 该语句将在记录之间插入一个值 编辑 如果用 PHP 进行数学计算更容易 我也愿意接受该解决方案
  • 从图像中提取线条以输入 OCR - Tesseract

    我在 pycon 上看这个演讲http youtu be B1d9dpqBDVA t 15m34s http youtu be B1d9dpqBDVA t 15m34s15 33 左右 演讲者谈到从图像 收据 中提取线条 然后将其输入 OC
  • Mongodb计算查询--累加乘法

    我最近开始在 Mongodb 中从事 POC 工作 我下面有一个 json 集合 db ccpsample insertMany ccp id 1 period 601 sales 100 00 ccp id 1 period 602 gr
  • 无需凭据仍可访问 MongoDB 服务器

    我的机器中有一个新的 mongodb 服务器 2 6 0 我使用以下配置文件启动了 mongod 实例 dbpath c mongo data db port 27017 logpath c mongo data logs mongo lo
  • 导航到带有附加标头的 URL

    无论如何我们可以导航 通过 a a 单击 到请求中带有附加标头的 URL 这是我的代码 我有一个 a href a 标签 然后我处理onClick 通过 JQuery 的事件 aUsers click function var spAuth
  • 如何有效地将纬度/经度地理编码反转为行政区

    我正在处理纽约市出租车数据集 该数据集的列包括日期时间 接送纬度 经度 下车纬度 经度等 现在我想对纬度 经度进行反向地理编码以找到行政区 社区 我碰到geopy并发现这样的事情完美地工作 from geopy geocoders impo
  • C++ 内联函数的定义必须在同一个文件中吗?

    我定义了一个函数show 如内联在名为的头文件中ex h以及里面函数的定义ex cpp 我预计这会给我一个错误 因为编译器不知道在哪里替换什么show 函数被调用 但因为我使用的是 IDE 所以它工作得很好 怎么会发生这种事 顺便说一句 当
  • 如何使用Java上传图像Url上传到Fire Storage并同时将其保存在fireStore中

    这是我的代码 我可以在 Toast 消息中检索图像 Url 但无法将其保存在 firestore 中 请告诉我是否有其他方法可以做到这一点 或者是我存储 URL 的问题 public class register extends AppCo
  • 空手道加特林:如何模拟空手道功能,除了那些标有@ignore的场景

    我有一个功能可以定义加特林测试的工作流程 加特林测试正在运行 但如何设置空手道选项来忽略标记为 ignore 使用系统属性 例如 Dkarate options tags ignore 没有帮助 mvn clean test compile
  • Unity - 将脚本文件移动到其他目录而不会丢失引用

    由于可以从另一个脚本访问 我必须将 GameManager Script 移动到更高的目录 但是 如果我尝试将脚本从一个文件夹移动到另一个目录 所有引用都会消失 我的意思是 所有脚本的所有引用 从头开始重新配置所有脚本确实很困难 就像从头开
  • 如何在 C# 窗口应用程序中以编程方式创建按钮?

    在 Form1 Load 方法中 我应该编写什么代码来创建一个简单的按钮 private void Form1 Load object sender System EventArgs e 这样在 加载 时就会显示按钮 正如你所说 它是Win
  • SAS中是否有相当于R函数表的?

    在 R 中 函数table使用交叉分类因素构建列联表 是否有一个等效的 SAS PROC 可以重现此 R 函数的结果 Example x lt data frame x rep 1 2 times 5 y rep 1 2 each 5 ou
  • 可以将 FileOutputStream 转换为字节数组吗?

    我想将 FileOutputStream 转换为字节数组 以便在两个应用程序之间传递二进制数据 请问有人可以帮忙吗 要将文件转换为字节数组 请使用 ByteArrayOutputStream 类 此类实现一个输出流 其中数据写入字节数组 当