Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中用特定字符或字符串填充字节[]_Android_Arrays - Fatal编程技术网

如何在android中用特定字符或字符串填充字节[]

如何在android中用特定字符或字符串填充字节[],android,arrays,Android,Arrays,我正在使用此代码读取PDF文件(以字节为单位) byte[]bytes=FileUtils.readFileToByteArray(pdf) 我想将这个字节[]转换为base64字符串,并将其发送到客户端 我得到的字符串值为[B@42109d30。 我想用相同的值填充字节[][B@42109d30 我试图将字符串的每个字符提取到一个字节中,然后将这个字节值赋给字节[],但即使如此字节[]的最终值也会改变 String getbase64 = "[B@42109d30"; String a = S

我正在使用此代码读取PDF文件(以字节为单位)

byte[]bytes=FileUtils.readFileToByteArray(pdf)

我想将这个字节[]转换为base64字符串,并将其发送到客户端

我得到的字符串值为
[B@42109d30
。 我想用相同的值填充
字节[]
[B@42109d30

我试图将字符串的每个字符提取到一个
字节中,然后将这个
字节
值赋给
字节[]
,但即使如此
字节[]
的最终值也会改变

String getbase64 = "[B@42109d30";
String a = String.valueOf((getbase64.charAt(i)));

if (a.equals("@") || a.equals("d") ) {
    bytes[i]=0; 
} else {
    b = Byte.valueOf(""+a);
    bt = b;
    bytes[i] = bt;
    Log.d("bytes", bytes.toString());
}

请帮助,谢谢

您可以通过以下方式将字符串转换为字节[],反之亦然:

byte[] bytes = text.getBytes("UTF-8");
String text = new String(bytes, "UTF-8");

您可以通过以下方式将字符串转换为字节[],反之亦然:

byte[] bytes = text.getBytes("UTF-8");
String text = new String(bytes, "UTF-8");

我不认为这是
[B@42109d30
是一个实际值,它是调用对象上的
toString()
的结果。您从哪里得到这个值,它存储在什么类型的对象中?是的,它是对byte[]变量调用toString的结果,我正在做的是,我正在以“byte[]bytes=FileUtils.readFileToByteArray(pdf)的形式读取pdf文件“然后,我不想将此值转换为base64字符串,而是想将此byte[]发送给客户端。因此,如何在客户端应用程序上以原始格式获取此byte[]值呢?这是另一回事,PDF不是以纯文本形式存储的,或者只是一个字节数组需要转换为字符串,它有自己的格式(仍然是一堆字节)但是它不能直接转换成字符串,通常
byte[]
转换成字符串是一个简单的过程,如
string a=new string(byteArray,“UTF8”);
但情况并非如此(我认为),你需要一个lib或一些可以处理PDF的东西(P.S我在你的问题中添加了PDF标签以获得更好的帮助)是的,但我应该使用哪个库,因为我不想在数据库中存储base64字符串,因为base64值的大小大于原始pdfi为您编辑的问题。您可以在此处查看已接受的答案,它说明如何将byte[]转换为base64,然后您可以将其发送给客户端。(注意base64不是可以从字节[]创建的常规字符串,它有特定的格式和poduce方法,请使用答案链接查找)我不认为这是
[B@42109d30
是一个实际值,它是调用
toString()的结果
在一个对象上。你从哪里得到这个值,它存储在什么类型的对象中?是的,它是对byte[]变量调用tostring的结果,我要做的是,我读取一个pdf文件作为“byte[]bytes=FileUtils.readFileToByteArray(pdf)”,然后不是将这个值转换为base64字符串,而是发送这个byte[]那么如何在客户端应用程序上以原始格式获取这个byte[]值呢?这是另一回事,PDF不是以纯文本形式存储的,或者只是一个字节数组需要转换成字符串,它有自己的格式(仍然是一堆字节),但不能直接转换成字符串,通常是
byte[]
to string是一个简单的方法,如
string a=new string(byteArray,“UTF8”);
但情况并非如此(我认为),你需要一个lib或一些可以处理PDF的东西(请注意,我在你的问题中添加了PDF标签以获得更好的帮助)是的,但我应该使用哪个库,因为我不想在数据库中存储base64字符串,因为base64值的大小大于原始pdfi为您编辑的问题。您可以在此处查看已接受的答案,它说明如何将byte[]转换为base64,然后您可以将其发送给客户端。(注意base64不是可以从字节[]创建的常规字符串,它有特定的格式和poduce方法,请使用答案链接查找)