程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了是否可以直接从 Encoded String 中获取 java 对象,而不是将 Encoded String 转换为 File 然后读取文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决是否可以直接从 Encoded String 中获取 java 对象,而不是将 Encoded String 转换为 File 然后读取文件??

开发过程中遇到是否可以直接从 Encoded String 中获取 java 对象,而不是将 Encoded String 转换为 File 然后读取文件?的问题如何解决?下面主要结合日常开发的经验,给出你关于是否可以直接从 Encoded String 中获取 java 对象,而不是将 Encoded String 转换为 File 然后读取文件?的解决方法建议,希望对你解决是否可以直接从 Encoded String 中获取 java 对象,而不是将 Encoded String 转换为 File 然后读取文件?有所启发或帮助;

我的要求:

  1. 我从我的 REST API 之一接收编码字符串现在需要使用 Base64 解码器解码此编码字符串。
  2. 因为这包含我需要像 Base64 一样解码到文件的文件,这可以使用下面的链接发生,如果我只是将编码字符串下面的粘贴复制到下面的链接中,它会给我下载文件
  3. https://base64.guru/converter/decode/file
  4. 现在我的问题是,是否可以以某种方式直接将下面编码的字符串转换为 Java 对象,而不是将它们转换为文件。
  • 我的最终目标是从编码字符串中获取数据。

-----现在的流程是-----

EncodedString ==> 将 Base 64 转换为 CSV 文件并下载文件 ==> 使用 Java 读取 CSV 文件 ==>> Java 对象中可用的数据

----以下可以吗?-------

EncodedString ==> 将文件解码并转换为 Java 对象 ==>> Java 对象中可用的数据

编码字符串:

我所尝试的

package com.Oracleerp;
import java.io.byteArrayinputStream;
import java.io.IOException;
import java.io.inputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.base64;

public class Zip {

    public static voID main(String args[]) throws IOException {

        convertZipAndDownload();
    }

    private static voID convertZipAndDownload() throws IOException {
        try {
            String str1 = "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";
            byte[] decodedimg = Base64.getDecoder().decode(str1.getBytes(StandardCharsetS.UTF_8));
            Path desTinationfile = Paths.get("/Users/as.asd/documents/zip","myImage1.zip");
            files.write(desTinationfile,decodedimg);
        } catch (Exception E) {
            System.out.println("Error :" + e.getmessage());
        }
    }
}

这可以很好地下载 zip,但我想在内存中完成所有这些操作而不做任何下载

解决方法

是的,您可以像这样使用 java.util.base64 在 Java 中轻松地将 Base64 数据解码为 byte[]

String myBase64String = ...;
byte[] decoded = Base64.getDecoder().decode(myBase64String);

请注意,您可能需要将 getDecoder() 替换为 getMimeDecoder()getUrlDecoder()具体取决于您的字符串使用的 Base64 编码类型。

然后,如果您需要某种需要该数据作为输入的处理,您可以轻松创建一个 InputStream,使用 ByteArrayInputStream 提供该数据:

InputStream in = new ByteArrayInputStream(decoded);

但是,如果您的处理代码坚持采用 File 对象,那么您需要修改该代码以直接接受 InputStream(通常这很容易,因为大多数这些方法只是创建一个 FileInputStream 并阅读它,只需跳过该步骤并使用传入的 InputStream 代替)。

大佬总结

以上是大佬教程为你收集整理的是否可以直接从 Encoded String 中获取 java 对象,而不是将 Encoded String 转换为 File 然后读取文件?全部内容,希望文章能够帮你解决是否可以直接从 Encoded String 中获取 java 对象,而不是将 Encoded String 转换为 File 然后读取文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。