我准备将远端服务器上的音乐下载到本地,代码如下,但是得到的文件大小与原文件不一样,更无法播放,请高手帮忙看看,多谢
import java.io.BufferedReader;
import java.io.*;public class reload{
public static void main(String[] args) throws IOException{ String s1 = "http://localhost:8080/20051211074416500.mp3";
java.io.InputStream is = null;
java.io.BufferedReader br = null;
BufferedInputStream bis = null; BufferedOutputStream bos = null;
try{ java.net.URL url = new java.net.URL(s1);
is = url.openStream();
bis = new java.io.BufferedInputStream(is);
}catch(Exception e){
System.out.println(e.toString());
}
File file = new File("D:/study/123.mp3");
if(!file.exists()){
file.createNewFile();
}
try{
bos = new BufferedOutputStream(new FileOutputStream(file));;
byte[] b = new byte[1024];
while(bis.read(b)!=-1) {
bos.write(b);
}
}catch(Exception e){
System.out.println(e.toString());
}finally{
try{
bos.flush();
bis.close();
}catch(Exception e){
System.out.println(e.toString());
}
}
}
}
import java.io.BufferedReader;
import java.io.*;public class reload{
public static void main(String[] args) throws IOException{ String s1 = "http://localhost:8080/20051211074416500.mp3";
java.io.InputStream is = null;
java.io.BufferedReader br = null;
BufferedInputStream bis = null; BufferedOutputStream bos = null;
try{ java.net.URL url = new java.net.URL(s1);
is = url.openStream();
bis = new java.io.BufferedInputStream(is);
}catch(Exception e){
System.out.println(e.toString());
}
File file = new File("D:/study/123.mp3");
if(!file.exists()){
file.createNewFile();
}
try{
bos = new BufferedOutputStream(new FileOutputStream(file));;
byte[] b = new byte[1024];
while(bis.read(b)!=-1) {
bos.write(b);
}
}catch(Exception e){
System.out.println(e.toString());
}finally{
try{
bos.flush();
bis.close();
}catch(Exception e){
System.out.println(e.toString());
}
}
}
}
bos.write(b);
}
这段写的有问题
int c=0;
while((c=bis.read(b))>0){
bos.write(b,0,c);
}
试一下,如果还不行,那可能是url访问时的问题了