java - 如何从随机访问文件中读取 base64 字符串 (Android)

标签 java android randomaccessfile

我有一个包含 base64 字符串的随机访问文件

AwFmIY4A+f6ABoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAgAAAAAAAAAAAAAAAAAAAAA1i9NeX4wQXmkQq94Wl1beNBlUPkQkUv5frOi+PDDT3iWxqt4ss6reM7iUfiM7Kv5KO5NeFLyV/j2+6Z4bv2r+GYiX/z4KJ78fC5ZfPBHonysiVP86qamfZB5nPDujE3wypSocPy0T3GXD57xqHtH9K7xUfWS7ElprvJDybEDROmc+53IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBZiGMAP/+gAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAIAAAAAAAAAAAAAAAAAAAAATpQoficZVv5EmxP+bS+o3kA6FJ4vvCt+IL2WnlW9095vvpL+KEBrPkjAqh4XC8H/b4yQNxsgrH86pBS/VSTS30mraf8xiNkUSyUTfEInKhxJstScM7MrPCkKmJ1Fi9KdTYvn/S+Nlp06NGtdOD2UvVacEzJSnSmyTS9UWhMwAtIYMRfTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=

问题是当我使用这段代码读取它时,我似乎无法返回文本文件中的确切内容。

File f = new File("fprint.txt");
RandomAccessFile randomFile = new RandomAccessFile(f, "rw");
String fromFile = randomFile.readLine();

当我记录“fromFile”时,我得到

AwFmIY4A+f6ABoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAgAAAAAAAAAAAAAAAAAAAAA1

这比我输入的要短得多。我希望能够以完全相同的方式读取文件中的所有内容。谢谢

已编辑:日志代码

Log.i("Check File", "Content of File: " + fromFile );

最佳答案

你应该使用read()方法,而不是readLine(),例如:

public static String getBase64FromFile(String path) throws IOException {
    RandomAccessFile file = new RandomAccessFile(path, "r");
    String result = "";
    int b = file.read();
    while (b != -1) {
        result = result + (char) b;
        b = file.read();
    }
    file.close();

    return result;
}

关于java - 如何从随机访问文件中读取 base64 字符串 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40357134/

相关文章:

java - 如何刷新 JSF h :panelGroup?

从 Javascript 调用 Android 方法时的 Android 'CalledFromWrongThreadException'

android - 深色操作栏/标签栏的自定义主题

java - 将文件作为 RandomAccessFile 打开并映射为 MappedByteBuffer 后重命名

java - 读取文件问题

Java:不打印以特定字符开头的行

java - 如何获取列表中的所有玩家的最小值

android - 将 Unity3D 添加到 React-Native

java - java中的RandomAccessFile是否读取内存中的整个文件?

java - 使用 RandomAccessFile 删除文件内容