黑马程序员技术交流社区
标题:
输入输出流的问题
[打印本页]
作者:
高双武
时间:
2011-11-11 20:47
标题:
输入输出流的问题
刚才用读写字符流写了一个程序,把e盘的MP3复制到d盘,复制过去了但是不能播放,这是怎么回事?代码如下
package execisetest;
import java.io.*;
public class FileCopy {
public static void main(String[] args)
{
copyfile();
}
public static void copyfile()
{
FileWriter fw=null;
FileReader fr=null;
try{
fw=new FileWriter("d:\\dd.mp3");
fr=new FileReader("e:\\dd.mp3");
char [] buf=new char[1024];
int num=0;
while((num=fr.read(buf))!=-1)
{
System.out.println(1);
fw.write(new String(buf,0,num));
}
}catch(IOException e){
System.out.println(e.toString());
}
finally {
try{
fr.close();
fw.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
作者:
宋文轩
时间:
2011-11-11 20:54
字符流不可以读写MP3格式的文件,用字节流才行。IO流后面会学到字节流。字符流主要处理文本文件,按最小单位是字符,这样读取其他文件时候会造成文件破坏。
作者:
刘福双
时间:
2011-11-11 21:06
你的代码我试验了 ,确实格式损坏。因为MP3的编码格式不是char 类型的,如果你复制记事本文件会好用的!
作者:
李龙龙
时间:
2011-11-12 00:21
希望有用:
import java.io.*;
public class FileCopy {
public static void main(String[] args)
{
copyfile();
}
public static void copyfile()
{
BufferedOutputStream bufo =null;
BufferedInputStream bufi =null;
try{
bufo= new BufferedOutputStream(new FileOutputStream("d:\\dd.mp3"));
bufi= new BufferedInputStream(new FileInputStream("e:\\dd.mp3"));
// char [] buf=new char[1024];
int num=0;
while((num=bufi.read())!=-1)
{
//System.out.println(1);
bufo.write(num);
}
}catch(IOException e){
System.out.println(e.toString());
}
finally {
try{
bufo.close();
bufi.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2