Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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
Java 如何在Android中获取文件的字节_Java_Android_File_Byte - Fatal编程技术网

Java 如何在Android中获取文件的字节

Java 如何在Android中获取文件的字节,java,android,file,byte,Java,Android,File,Byte,在我的应用程序中,我想读取文件的前16个字符 我写了下面的代码,但对于这个字节[],请给我看43 我想先显示16个字节的字符 我的代码: String inputFile = getRootDirPath(context) + "/" + "girnmqlyv0.pdf"; File file = new File(inputFile); try { byte[] fileBye =

在我的应用程序中,我想读取文件的前16个字符
我写了下面的代码,但对于这个
字节[]
,请给我看43
我想先显示16个字节的字符

我的代码:

String inputFile = getRootDirPath(context) + "/" + "girnmqlyv0.pdf";
File file = new File(inputFile);
                try {
                    byte[] fileBye = FileUtils.readFileToByteArray(file);
                    Log.e("FileByte", ""+fileBye[16]);
                } catch (IOException e) {
                    e.printStackTrace();
                }
logcat
中显示此消息:

E/FileByte: 43

如何获取文件的第一个16个字符?

要从前16个字节创建字符串,请使用该字符串而不是
“+fileBye[16]

Log.e("FileByte", new String(fileBye, 0, 16));
请注意,这将根据默认字符编码(Android上为UTF-8)将前16个字节转换为字符串。如果文件中的文本包含非ASCII字符,则16个字节将不会转换为16个字符


要将前16个字节提取为字节数组,可以使用:

byte[] first16 = Arrays.copyOfRange(fileBye, 0, 16);
或者,您只能读取前16个字节,而不是整个文件:

byte[] first16 = new byte[16];
try (FileInputStream in = new FileInputStream(inputFile)) {
    in.read(first16);
}

要从前16个字节创建字符串,请使用该字符串而不是
“+fileBye[16]

Log.e("FileByte", new String(fileBye, 0, 16));
请注意,这将根据默认字符编码(Android上的UTF-8)将前16个字节转换为字符串。如果文件中的文本包含非ASCII字符,则16字节将不会转换为16个字符


要将前16个字节提取为字节数组,可以使用:

byte[] first16 = Arrays.copyOfRange(fileBye, 0, 16);
或者,您只能读取前16个字节,而不是整个文件:

byte[] first16 = new byte[16];
try (FileInputStream in = new FileInputStream(inputFile)) {
    in.read(first16);
}

像这样定义数组的大小
byte[]bytes=newbyte[size]


在您的情况下,大小为16

定义数组的大小,如下所示
字节[]字节=新字节[size]


您的尺码是16号

谢谢我的朋友,但请给我看这样的:
��>h[iZ�T�w0=�:|这就是文件中写入的内容。如果在文本编辑器中打开文件,会看到什么?我想将这16个字符存储到字节[]中,以便使用init vector进行AES ad CBCCA解码。您可以帮助我如何将这16个字符存储到字节[]中吗?啊,所以你根本不需要字符或字符串。请看UpdateThaks my friend,但向我展示这样的内容:
��>h[iZ�T�w0=�:|这就是文件中写入的内容。如果在文本编辑器中打开文件,会看到什么?我想将这16个字符存储到字节[]中,以便使用init vector进行AES ad CBCCA解码。您可以帮助我如何将这16个字符存储到字节[]中吗?啊,所以你根本不需要字符或字符串。请看更新。它看起来像是在试图读取文件。PDF是一种二进制文件格式,它不包含易于读取的格式的文本。你希望得到什么输出?
byte[]fileBye=FileUtils.readFileToByteArray(file)
。将函数调用更改为
byte[]fileBye=FileUtils.readFileToByteArray(文件,16);
并发布该函数的调整代码。看起来您正在尝试读取文件。PDF是一种二进制文件格式,它不包含易于读取的格式的文本。您希望得到什么输出?
byte[]fileBye=FileUtils.readFileToByteArray(文件)
。将函数调用更改为
byte[]fileBye=FileUtils.readFileToByteArray(文件,16);
并发布该函数的调整代码。