从 google 驱动器读取 word 文件时获取特殊字符
getting special characters when reading word file from google drive
我正在尝试将 google 驱动器字文件本地存储到设备。下面的代码就是这样做的,但是对于某些 (.doc) word 文件,得到 special/ascii 个字符。
InputStream inputStream = mActivity.getContentResolver().openInputStream(uri);
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
// FileInputStream fis;
// fis = ((Activity)mActivity).openFileInput("test.txt");
mTempFile = File.createTempFile("file", ".doc");
FileOutputStream fos = new FileOutputStream(mTempFile);
// FileOutputStream fos = ((Activity)mActivity).openFileOutput("resume.doc", Context.MODE_PRIVATE);
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
fos.write(stringBuilder.toString().getBytes());
fos.flush();
fos.close();
reader.close();
有些文件可以正确读取,有些则不能。
我的目的是将文件下载到设备并使用 REST API 作为多部分文件将其发送到服务器。
非常感谢任何避免特殊字符的帮助。
不要使用 (Buffered)Readers。
不要使用 readLine()。
不要使用 StringBuilder。
它们仅适用于纯文本文件。 .doc 不是纯文本。
干掉他们。
只需循环从输入流中读取一大块字节,然后直接将它们保存到文件输出流中。
我正在尝试将 google 驱动器字文件本地存储到设备。下面的代码就是这样做的,但是对于某些 (.doc) word 文件,得到 special/ascii 个字符。
InputStream inputStream = mActivity.getContentResolver().openInputStream(uri);
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
// FileInputStream fis;
// fis = ((Activity)mActivity).openFileInput("test.txt");
mTempFile = File.createTempFile("file", ".doc");
FileOutputStream fos = new FileOutputStream(mTempFile);
// FileOutputStream fos = ((Activity)mActivity).openFileOutput("resume.doc", Context.MODE_PRIVATE);
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
fos.write(stringBuilder.toString().getBytes());
fos.flush();
fos.close();
reader.close();
有些文件可以正确读取,有些则不能。 我的目的是将文件下载到设备并使用 REST API 作为多部分文件将其发送到服务器。
非常感谢任何避免特殊字符的帮助。
不要使用 (Buffered)Readers。
不要使用 readLine()。
不要使用 StringBuilder。
它们仅适用于纯文本文件。 .doc 不是纯文本。
干掉他们。
只需循环从输入流中读取一大块字节,然后直接将它们保存到文件输出流中。