下载文件时的文件大小差异

时间:2016-07-05 12:50:36

标签: java

我正在开发一个Java文件下载器,所以我刚刚下载了一个带有应用程序而没有应用程序的视频文件,所以我看到了这些文件之间的文件大小差异。我无法使用我的Java应用程序打开我下载的文件。当我使用Notepad ++打开它们时,我看到里面随机生成的符号。我做错了什么?

http://i.imgur.com/lKaofVg.png - 在这里,您可以看到随机生成的问号。 http://i.imgur.com/8bLC2R7.png - 但在原始文件中,它们不存在。 http://i.imgur.com/H3MGgwl.png - 这是文件大小,我只为生成的文件放置了“+”。

这是我的代码:

        String currentRange = "bytes=0-"+num*13107200;
        System.out.println(num + " is executing");
        URL file = new URL(url);
        FileOutputStream stream = new FileOutputStream("tmp"+num+".mp4"); 
        HttpURLConnection urlConnection = (HttpURLConnection) file.openConnection();
        urlConnection.setRequestProperty("Range", currentRange);
        urlConnection.connect();
        BufferedReader in = new BufferedReader(new InputStreamReader(
                urlConnection.getInputStream()));
        String inputLine;

        final PrintStream printStream = new PrintStream(stream);
        while ((inputLine = in.readLine()) != null)
            printStream.println(inputLine);
        in.close();
        printStream.close();

1 个答案:

答案 0 :(得分:0)

我通过使用此代码解决了这个问题:Reading binary file from URLConnection和@ piet.t

InputStream input = urlConnection.getInputStream();
            byte[] buffer = new byte[4096];
            int n = - 1;
            while ( (n = input.read(buffer)) != -1) 
            {
                stream.write(buffer, 0, n);
            }