我試圖在java中使用套接字從互聯網上下載文件。我的程序似乎工作正常,編譯,但當我去檢查文件後,它的大小爲0字節。我不確定我在哪裏出錯。使用套接字從互聯網下載文件
BufferedInputStream download = new BufferedInputStream(socket.getInputStream());
FileOutputStream newFile = new FileOutputStream(fileName);
output.print("GET " + address + " HTTP/1.0\r\n\n");
output.flush();
byte[] input = new byte[10240];
int finished = download.read(input, 0, 10240);
然後我有一個while循環,使確保成品不等於-1,並呼籲更多的數據字節,而使用它寫入文件:
newFile.write(input, 0, finished);
我知道我的套接字配置正確,因爲我可以下載並使用它讀取HTTP標頭。我的程序永遠不會進入while循環來寫入數據,read()函數立即返回-1。我將如何去修復我的代碼?
謝謝!
編輯:我看到,這被標記爲重複使用URL類來做同樣的事情的答案。我無法使用URL或URLConnection。
爲什麼* *描述了'while'循環中,您可能*貼的時候*呢?你在哪裏閱讀標題?你在哪裏檢查HTTP返回碼? – EJP
@EJP我認爲我不需要發佈while循環,因爲它不會啓動,因爲'download.read(input,0,10240)'立即返回'-1'。 – Shozzking
@EJP我發佈了與我的問題相關的其餘代碼 – Shozzking