package java12_11_2;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileStream {
public static void main(String[] args) {
File f1 = new File("F:\\201021510513\\java\\java.txt");
String str = "F:\\201021510513\\java\\java1.txt";
File f2 = new File(str);
if(f2.isFile()){
System.out.println("文件java1.txt存在,下面进行文件输入!");
}else{
try {
f2.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
FileInputStream fi = null;
FileOutputStream fo = null;
try {
fi = new FileInputStream(f2);
fo = new FileOutputStream(f1);
byte[] strByte = new byte[(int)f1.length()];
while(fi.read(strByte)!= -1){
String str1=new String(strByte);
System.out.println(str1);
fo.write(strByte);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fi.close();
fo.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
执行之后java1.txt里边没东西,连java.txt里的东西也没了,怎么回事,哪位大神给教育一下!!!!!
------解决方案--------------------
byte[] strByte = new byte[(int)f1.length()];
这一行修改为
byte[] strByte = new byte[(int)f2.length()];
妹的,看你这代码f1,f2的,自己都搞乱了不是??
变量命名很重要的,为什么不用src,des来区分源文件和目标文件?用什么f1,f2,乱不乱
------解决方案--------------------
首先请你确定这两个文件都是存在的,其次是不为空。如果文件java1.txt不存在,你创建之后为空,FileOutStream输出的会覆盖原来的数据,所以连个都为空。如果文件java1.txt存在,而另一个文件为空则会形成无限循环。自己查看一下目录下的文件吧