こんにちはStackOverflowファミリー、
私の目的はURL
、特定の範囲のファイルの内容を取得することです。これを行うために、2つのバイトがあります。1つは開始バイトで、もう1つは終了バイトです。
しかし、私はこれを行う方法がわかりません。私は実際にバイト配列を使用してバイトごとに読み取っています。
コードに説明を追加しました、ありがとう。
これが私のコードです:
// Scenario - 1
if(args.length == 3){ // 3 OLACAK
con.setRequestMethod("GET");
fromURL = new BufferedInputStream(con.getInputStream(), bufSize);
toFile = new BufferedOutputStream(new FileOutputStream(outputFile), bufSize);
if(con.getResponseCode() == HttpURLConnection.HTTP_OK){
// READING BYTE BY BYTE HERE
int read = -1;
byte[] buf = new byte[bufSize];
while ((read = fromURL.read(buf, 0, bufSize)) >= 0) {
toFile.write(buf, 0, read);
}
toFile.close();
System.out.println("ok");
}
// Scenario - 2
}else if(args.length == 0){
con.setRequestMethod("HEAD");
if(con.getResponseCode() == HttpURLConnection.HTTP_OK){
byte startRange = 0; //Integer.parseInt(args[3]);
byte finishRange = 25;//Integer.parseInt(args[4]);
System.out.println(con.getContentLength());
if(startRange < 0 || finishRange > ((byte)con.getContentLength())){
System.out.println("Range is not OK.");
}else{
int read = -1;
byte[] buf = new byte[finishRange];
// HOW TO INCLUDE START AND END BYTES TO THIS PART OF CODE??????
//////////////////////////////////////////////////////////////
while ((read = fromURL.read(buf, 0, finishRange)) >= startRange) {
//toFile.write(buf, 0, read);
}
toFile.close();
System.out.println("AAA");
}
}
}else{
System.out.println("Wrong argument count.");
}