我想要得到一個3到5個PDF文件(來自某些互聯網源)&合併它們一個接一個。 僅供參考,我不想使用iText的或任何其他PDF的lib,因爲,請看代碼FileOutputStream追加問題,我錯了?
public static void saveFile(String[] urls, String fileName) throws IOException {
ClientURLConnection clientURLConnection = null;
InputStream inputStream = null;
try {
int t = 1;
FileOutputStream outputStream = new FileOutputStream(fileName,true);
for (String url : urls) {
clientURLConnection = new ClientURLConnection(url);
clientURLConnection.setHttpMethod(ClientURLConnection.GET_METHOD);
inputStream = clientURLConnection.getInputStream();
outputStream.write(IOUtils.toByteArray(inputStream));
inputStream.close();
outputStream.flush();
System.out.println((t++) + " - File inserted in " + fileName + "\n");
Thread.sleep(3000);
}
outputStream.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
的String []網址一次 - URL的數組,以獲得PDF文檔。 Sting fileName - 是存儲所有PDF的單個文件。 ClientURLConnecion - 是我自己的類來處理代理和其他事情。
預期輸出 - 兩個PDF文件,我們從URL中獲取是在一個單一的文件
實際輸出 - 二PDF被覆蓋的第一個,但文件的大小是兩個PDF的大小之和。
問題 - 即使我做了FileOutputstream - 追加true,它是覆蓋。 我不明白的地方,我提前
您正在關閉循環中間的輸出流。我很難相信它甚至可以像你說的那樣工作,而不會引發例外。無論如何,如果您處理PDF,請使用能理解它們的庫。將這些文件附加在一起不太可能讓您獲得理想的結果。 – SJuan76 2013-05-14 12:29:25
感謝回答 我試過,即使我保持「outputStream.close();」在循環之外它表現相同 – 2013-05-14 12:32:31