相关疑难解决方法(0)

Java中的Base64编码

我正在使用Eclipse.我有以下代码行:

wr.write(new sun.misc.BASE64Encoder().encode(buf));
Run Code Online (Sandbox Code Playgroud)

Eclipse将此行标记为错误.我导入了所需的库:

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
Run Code Online (Sandbox Code Playgroud)

但同样,它们都显示为错误.我在这里找到了类似的帖子.

我使用Apache Commons作为建议的解决方案,包括:

import org.apache.commons.*;
Run Code Online (Sandbox Code Playgroud)

并导入从以下网址下载的JAR文件:http://commons.apache.org/codec/

但问题仍然存在.Eclipse仍然显示前面提到的错误; 请指教.

java base64

302
推荐指数
14
解决办法
74万
查看次数

我们可以将字节数组转换为Java中的InputStream吗?

我们可以将字节数组转换为Java中的InputStream吗?我一直在网上看,但找不到它.

我有一个具有InputStream作为参数的方法.

cph我有的InputStream 是base64编码所以我不得不使用它解码它

BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedBytes = decoder.decodeBuffer(cph);
Run Code Online (Sandbox Code Playgroud)

现在我如何decodedBytes再次转换为InputStream

java base64 inputstream

124
推荐指数
1
解决办法
13万
查看次数

哪个Java库提供base64编码/解码?

我想知道哪个库用于base64编码/解码?我需要这个功能足够稳定以供生产使用.

java

73
推荐指数
4
解决办法
17万
查看次数

用Java解码Base64字符串

我正在尝试解码一个简单的Base64字符串,但我无法这样做.我目前正在使用该org.apache.commons.codec.binary.Base64软件包.

我正在使用的测试字符串是:abcdefg,使用PHP编码YWJjZGVmZw==.

这是我目前正在使用的代码:

Base64 decoder = new Base64();
byte[] decodedBytes = decoder.decode("YWJjZGVmZw==");
System.out.println(new String(decodedBytes) + "\n") ;   
Run Code Online (Sandbox Code Playgroud)

上面的代码不会抛出错误,而是不会按预期输出解码后的字符串.

java base64

58
推荐指数
3
解决办法
14万
查看次数

从sun.misc.BASE64迁移到Java 8 java.util.Base64

是Java 8 java.util.Base64MIME编码器和解码器一个下拉更换为不支持的,内部的Java API sun.misc.BASE64Encodersun.misc.BASE64Decoder

到目前为止我的想法和原因

根据我的调查和快速测试(见下面的代码),它应该是替代品,因为

  • sun.misc.BASE64Encoder基于其JavaDoc是RFC1521中规定的BASE64字符编码器.此RFC是MIME规范的一部分......
  • java.util.Base64基于JavaDoc 使用RFC 2045表1中指定的"Base64 Alphabet" 进行编码和解码操作...MIME下

假设RFC 1521和2045没有重大变化(我找不到任何变化)并且基于我使用Java 8 Base64 MIME编码器/解码器的快速测试应该没问题.

我在找什么

  • 确认或反驳"直接替换"点OR的权威来源
  • 一个反例,显示了java.util.Base64具有与sun.misc.BASE64Encoder OpenJDK Java 8实现(8u40-b25)(BASE64Decoder)不同的行为的情况
  • 你认为无论如何回答上述问题肯定

以供参考

我的测试代码

public class Base64EncodingDecodingRoundTripTest {

    public static void main(String[] args) throws IOException {
        String test1 = " ~!@#$%^& *()_+=`| }{[]\\;: \"?><,./ ";
        String test2 = test1 + test1;

        encodeDecode(test1);
        encodeDecode(test2);
    }

    static …
Run Code Online (Sandbox Code Playgroud)

java base64 encoding mime java-8

30
推荐指数
2
解决办法
2万
查看次数

Java - 将图像转换为Base64

我在将gif图像转换为基本64字符串时遇到问题.

当我转换它时,代码加起来像100,000 AAAAAA,而图像真的很小!

这是我的代码:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.ArrayList;

public class Main
{

    public static void main(String[] args)
    {
        try
        {
            FileWriter fstream = new FileWriter("./out.txt");
            BufferedWriter out = new BufferedWriter(fstream);

            File folder = new File("./flags/");
            File[] listOfFiles = folder.listFiles();

            for (int i = 0; i < listOfFiles.length; i++)
            {
                if (listOfFiles[i].isFile())
                {
                    Main.readFile(out, listOfFiles[i]);
                }
            }

            out.close();
            System.out.println("Done");
        }
        catch (Exception e) {}
    }

    public static void readFile(BufferedWriter out, File file)
    {
        try
        { …
Run Code Online (Sandbox Code Playgroud)

java base64 image

23
推荐指数
2
解决办法
10万
查看次数

如何使用GWT将短字符串编码/解码为Base64?

我需要在GWT中将短字符串编码为base 64并解码服务器上的base 64字符串.任何人都有实用程序类或库?

java gwt base64

15
推荐指数
2
解决办法
2万
查看次数

如何通过HTTP代理连接Socket服务器

我有一段代码连接到Socket服务器,它工作正常.

Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, port));
Run Code Online (Sandbox Code Playgroud)

现在我想通过HTTP代理连接,我该怎么办?

我试过这个并且失败了

SocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
Socket socket = new Socket(proxy);
socket.connect(new InetSocketAddress(address, port));
Run Code Online (Sandbox Code Playgroud)

这篇文章建议我应该使用Jakarta Commons HttpClient,但如何使用它通过HTTP代理连接Socket服务器?

更新:我使用SOCKS代理,如果我使用HTTP代理它不起作用:

SocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
Socket socket = new Socket(proxy);
socket.connect(new InetSocketAddress(address, port));
Run Code Online (Sandbox Code Playgroud)

它会抛出IllegalArgumentException

java.lang.IllegalArgumentException: Proxy is null or invalid type
    at java.net.Socket.<init>(Socket.java:88)
Run Code Online (Sandbox Code Playgroud)

java sockets httpclient

15
推荐指数
2
解决办法
4万
查看次数

如何避免对Base 64发出警告?

我刚试过一个示例代码表格网,它显示如下警告

SimpleConvertImage.java:7:警告:com.sun.org.apache.xerces.internal.impl.dv.util.Base64是内部专有API,可能会在将来的版本导入com.sun.org.apache.xerces中删除. internal.impl.dv.util.Base64; ^

SimpleConvertImage.java:16:警告:com.sun.org.apache.xerces.internal.impl.dv.util.Base64是内部专有API,可能会在将来的版本中删除String base64String = Base64.encode(baos.toByteArray()); ^

SimpleConvertImage.java:19:警告:com.sun.org.apache.xerces.internal.impl.dv.util .Base64是内部专有API,可能会在将来的发布字节中删除[] bytearray = Base64.decode(base64String) ; ^

代码如下

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; 
public class SimpleConvertImage {
    public static void main(String[] args) throws IOException{
        String dirName="/root/Desktop";
        ByteArrayOutputStream baos=new ByteArrayOutputStream(1000);
        BufferedImage img=ImageIO.read(new File(dirName,"Screenshot.png"));
        ImageIO.write(img, "png", baos);
        baos.flush();

        String base64String=Base64.encode(baos.toByteArray());
        baos.close();

        byte[] bytearray =Base64.decode(base64String);

        BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytearray));
        ImageIO.write(imag, "png", new File(dirName,"snap3.png"));
    }
}
Run Code Online (Sandbox Code Playgroud)

java

15
推荐指数
2
解决办法
2万
查看次数

使用来自html的Flying-Saucer渲染PDF格式的嵌入图像

我有一个xhtml文档,我正在使用flyingsaucer变成PDF.xhtml有几个标签,内嵌base64编码图像.xhtml的来源是动态的,因此图像标签所在的结构可能会有所不同.这是标签的样子:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAagAAAEuCAYAAADbW4YFAAAgAElEQVR4Aex9CYBdRZ ...
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中查看html时,图像显示正确,但是,img元素不会在最终的PDF中呈现.以下是我如何渲染它来创建PDF.

ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(builder.parse(source), "");
renderer.layout();
renderer.createPDF(response.getOutputStream(),true);
Run Code Online (Sandbox Code Playgroud)

任何人都可以让我知道我应该采取什么方法来实现这一目标?我看到了这个帖子,但是,我正在使用内联图像,所以我看不出如何使用Edd的解决方案来实现这一点.

提前致谢

java pdf-generation embedded-resource flying-saucer xhtmlrenderer

8
推荐指数
2
解决办法
1万
查看次数