这是我的代码: 这段代码可以读取并创建一个pdf,但是如果打开这个文件,我会收到消息“这个pdf文档可能无法正确显示。”
URL url;
try {
url = new URL("http://localhost/ta/A11.pdf");
InputStream inputStream = url.openConnection().getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
Writer writer = null;
String inputLine= null;
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:/update/xampp/htdocs/ta/newpdf.pdf"), "utf-8"));
while ((inputLine = in.readLine()) != null) {
writer.write(inputLine);
}
} catch (IOException ex) {
// report
} finally {
try {writer.close();} catch (Exception ex) {}
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
如果在notepad ++中打开 C:/update/xampp/htdocs/ta/newpdf.pdf:
%PDF-1.4%����117 0 obj<</Length 2566
C:/update/xampp/htdocs/ta/A11.pdf
%PDF-1.4
%ÿÿÿÿ
117 0 obj
<</Length 2566
答案 0 :(得分:0)
你这是完全错误的方式。你不能在像PDF这样的东西上使用ReadLine
因为PDF不是文本文档,它包含很多其他数据,这些数据会因使用你的方法读取和写入而被破坏。您需要使用二进制方法来读取和写入,例如直接使用BufferedInputStream
和BufferedOutputStream
而不是围绕它包装读取器或写入器。