您
byte由于
while (fileIn.read() != -1) { //1st read fileOut.write(fileIn.read()); //2nd read - 1st write }您正在阅读两次,只写一次。
您需要做的是
int x; while ((x = fileIn.read()) != -1) { //1st read fileOut.write(x); //1st write }这是您的完整代码
import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import java.util.Scanner;public class FileDownloader { public static void main(String[] args) throws IOException { InputStream fileIn; FileOutputStream fileOut; Scanner s = new Scanner(System.in); System.out.println("Enter URL: "); String urlStr = s.nextLine(); URL url = new URL(urlStr); URLConnection urlConnect = url.openConnection(); fileIn = urlConnect.getInputStream(); System.out.println("Enter file name: "); String fileStr = s.nextLine(); fileOut = new FileOutputStream(fileStr); int x; while ((x = fileIn.read()) != -1) { fileOut.write(x); } System.out.println("File is downloaded");}


