请大家帮我分析下我下面的程序的问题。我运行后,它帮我复制的文件不是视频文件,里面只有声音,而且声音还很杂。而且播放还没到一半就不能播放了。此程序在myeclipse8.5下运行的。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class movie_file
{
static FileInputStream in=null;
static FileOutputStream out=null;
public static void main(String[] args) throws IOException
{
String path1="E:/file";//此目录下或此目录的下目录下有“.avi”格式视频文件
String path2="E:/File2";//把上面目录中的所有的“.avi”视频文件复制到该文件夹下
File file1=new File(path1);
File file2=new File(path2);
move(file1,file2);
}
static void move(File file1,File file2) throws IOException{
File[] f=file1.listFiles();
for(File file:f){
if(file.exists()){
if(file.isFile()){
if(file.toString().endsWith(".avi")){
in=new FileInputStream(file);
BufferedInputStream bin=new BufferedInputStream(in);
out=new FileOutputStream(file2.createTempFile(file.getName(), ".avi", file2));
BufferedOutputStream bout=new BufferedOutputStream(out);
while(bin.read()!=-1){
bout.write(in.read());
}
bin.close();
in.close();
bout.close();
out.close();
}
else{
return;
}
}
else {
move(file,file2);
}
}else {
return;
}
}
}}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class movie_file
{
static FileInputStream in=null;
static FileOutputStream out=null;
public static void main(String[] args) throws IOException
{
String path1="E:/file";//此目录下或此目录的下目录下有“.avi”格式视频文件
String path2="E:/File2";//把上面目录中的所有的“.avi”视频文件复制到该文件夹下
File file1=new File(path1);
File file2=new File(path2);
move(file1,file2);
}
static void move(File file1,File file2) throws IOException{
File[] f=file1.listFiles();
for(File file:f){
if(file.exists()){
if(file.isFile()){
if(file.toString().endsWith(".avi")){
in=new FileInputStream(file);
BufferedInputStream bin=new BufferedInputStream(in);
out=new FileOutputStream(file2.createTempFile(file.getName(), ".avi", file2));
BufferedOutputStream bout=new BufferedOutputStream(out);
while(bin.read()!=-1){
bout.write(in.read());
}
bin.close();
in.close();
bout.close();
out.close();
}
else{
return;
}
}
else {
move(file,file2);
}
}else {
return;
}
}
}}
解决方案 »
- 静态成员变量能不能被序列化????
- java 重量级组件和轻量级组件比较问题
- 求代码?
- double类型输入长度超过7位自动转为科学记数法,如何避免?
- com.sun.net.httpserver包从哪里找,下载啊?
- ■ 各位大虾,JDK1.5之下版本能否实现可变参数??? ■
- 高分求使用socket 与moxa通信,
- vb有对象浏览器,请问java那个开发环境有相似啊。
- JTextArea控件如何设置滚动条啊,TextArea控件都有,怎么新的Swing里更没有了呢?
- Java与Delphi、C++相比,哪一点值得我们留口水....;.
- 关于一个代码出错的问题
- 解惑:为什么在父类中调用的是子类的方法?
bout.write(in.read());
}
严重有问题、
注意写法
byte[] buff = new byte[1024];
while (bin.read(buff, 0, buff.length)!= -1){
bout.write(buff);
}知道你上面做会有数据丢失吗?你读了2次,第一次没写进去,