我正在开发一个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();
答案 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);
}