黑马程序员技术交流社区
标题:
帮看些程序关于拷贝文件的?
[打印本页]
作者:
王涛
时间:
2012-1-10 13:39
标题:
帮看些程序关于拷贝文件的?
本帖最后由 王涛 于 2012-2-24 10:51 编辑
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileCopy {
public static void main(String[] args) {
String madd="F://textfile.txt";
String nadd="D://textfile.txt";
File mFile=new File(madd);
File nFile=new File(nadd);
try{
nFile.createNewFile();
FileInputStream mfi=new FileInputStream(mFile);
FileOutputStream nfi=new FileOutputStream(nFile);
byte[] date=new byte[512];
int fs=-1;
while((fs=mfi.read())>0){
nfi.write(date,0,fs);
}
nfi.close();
mfi.close();
System.out.println("文件拷贝成功");
}catch(Exception e){
e.printStackTrace();
}
}
}
拷贝完成后,D盘textfile.txt文件里没有内容,感觉像是空格,内存也占用了。能看下那里出错了吗?谢了
作者:
卢其龙
时间:
2012-1-10 13:51
while((fs=mfi.read())>0){
nfi.write(date,0,fs);
}
public int read()
throws IOException从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。
read
public int read(byte[] b)
throws IOException从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。
read签名不一样,主要参数方法重载呀!!!!!!!!
作者:
朱泽宇
时间:
2012-1-10 14:45
本帖最后由 朱泽宇 于 2012-1-10 14:47 编辑
public static void main(String[] args) {
String madd="F://textfile.txt";
String nadd="D://textfile.txt";
File mFile=new File(madd);
File nFile=new File(nadd);
try{
nFile.createNewFile();
FileInputStream mfi=new FileInputStream(mFile);
FileOutputStream nfi=new FileOutputStream(nFile);
int fs=0;
while((fs=mfi.read())>0){
nfi.write(fs);
}
nfi.close();
mfi.close();
System.out.println("文件拷贝成功");
}catch(Exception e){
e.printStackTrace();
}
}
这样就好了
作者:
为梦而战
时间:
2012-1-10 14:53
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileCopy {
public static void main(String[] args) {
String madd="F://textfile.txt";
String nadd="D://textfile.txt";
File mFile=new File(madd);
File nFile=new File(nadd);
try{
//nFile.createNewFile();
FileInputStream mfi=new FileInputStream(mFile);
FileOutputStream nfi=new FileOutputStream(nFile);
byte[] date=new byte[512];
int fs;
while((fs=mfi.read(date))>0){//这个是正确的,你对比一下,是自己的read()里没有指定date数组,加上date数组,这数才能读到数据
nfi.write(date,0,fs);
}
mfi.close();
nfi.close();
System.out.println("文件拷贝成功");
}catch(Exception e){
e.printStackTrace();
}
}
}
作者:
为梦而战
时间:
2012-1-10 15:03
再一个,你可以把IO代码写的更简单一点:下面是我自己帮你简写的,你可以参考一下:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class CopyFile {
public static void main(String[] args) {
try{
FileInputStream mfi=new FileInputStream("F://textfile.txt");
FileOutputStream nfi=new FileOutputStream("D://textfile.txt");
byte[] date=new byte[1024];
int fs;
while((fs=mfi.read(date))!=-1){
nfi.write(date,0,fs);
}
mfi.close();
nfi.close();
System.out.println("文件拷贝成功");
}catch(Exception e){
e.printStackTrace();
}
}
}
作者:
王涛
时间:
2012-1-10 15:49
谢了哥几个~~果然是忘了写date了,粗心啊,呵呵
作者:
为梦而战
时间:
2012-1-10 15:51
王涛 发表于 2012-1-10 15:49
谢了哥几个~~果然是忘了写date了,粗心啊,呵呵
:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2