我想使用InputStreamReader读取二进制文件(pdf,doc,zip)。我使用FileInputStream实现了这一点,并将文件的内容保存到一个字节数组中。但我已经被要求使用InputStreamReader来做到这一点。所以,当我试图打开并使用JAVA:使用InputStreamReader打开并读取文件
File file = new File (inputFileName);
Reader in = new
InputStreamReader(new FileInputStream(file));
char fileContent[] = new char[(int)file.length()];
in.read(fileContent); in.close();
例如读取PDF文件,然后使用
File outfile = new File(outputFile);
Writer out = new OutputStreamWriter(new FileOutputStream(outfile));
out.write(fileContent);
out.close();
一切都保存这些内容到另一个PDF文件去罚款(不例外或错误),但当我试图打开新文件时,它说它已损坏或编码为wrond。
任何建议?
PS1我特别需要这样的InputStreamReader使用
PS2尝试读取/写入.txt文件
是的,我知道,最简单的方法是使用字节,但我已经被要求用InputStreamReader来做到这一点,我不知道是否有可能以这种方式正确读取二进制文件的内容 – yakamuki 2014-10-09 14:32:09
读写器API被设计为读取文本数据。通常你应该在里面指定文本的编码。这个api不适用于二进制数据 – ursa 2014-10-09 14:33:21
,所以使用InputStreamReader不可能使用它?实际上,我必须做一种加密,为每个字符添加一个随机数,然后如果我从加密文件中分出相同的数字,它必须再次与原始数字相同。我做了使用字节,但我不能用字符做到这一点,当我甚至不能正确读取它们 – yakamuki 2014-10-09 14:40:32