黑马程序员技术交流社区
标题:
IO实现文件的复制粘贴功能
[打印本页]
作者:
youc3576
时间:
2011-9-19 13:02
标题:
IO实现文件的复制粘贴功能
谁能帮我看下怎么把这个程序改成一个能够实现从hell.txt里的内容复制到copy.txt文件中。谢谢。。。刚开始。。。菜鸟。。。
package com.youc;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
public class FileReaderDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int b = 0 ;
FileReader re = null ;
FileWriter wr = null ;
try {
long num = 0;
String str = "nihao,ni zain 呵呵";
wr = new FileWriter("d:"+File.separator+"hell.txt");
wr.write(str);
wr.close();
for (int i = 0; i < str.length(); i++) {
num++;
}
System.out.println("文件写进去了"+num+"个字节");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
re = new FileReader("d:"+File.separator+"hell.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
long num = 0 ;
while ((b=re.read())!=-1) {
System.out.print((char)b);
num++;
}
re.close();
System.out.println("\n"+"共读取了"+num+"个字符");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.exit(-1);
}
}
作者:
匿名
时间:
2011-9-19 13:04
标题:
回复 楼主 的帖子
有点感觉就是写不出来。。。想用StringBuffer呢不知道咋下手 了 。。。谢谢
作者:
ila123
时间:
2011-9-19 13:46
不知道这个能不能满足你说的意思:
自然这个考虑的不够周全,比如文件内容为空之类的。。
public class SimpleCopy {
/**
* @param args
* @throws IOException
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException, IOException {
FileInputStream fis = new FileInputStream(new File("hell.txt"));
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(new File("copy.txt"));
BufferedOutputStream bos =new BufferedOutputStream(fos);
int length=-1;
while((length=bis.read())!=-1){
bos.write(length);
}
bos.close();
bis.close();
}
}
作者:
匿名
时间:
2011-9-19 13:48
标题:
回复 沙发 的帖子
我写了一个复制文件的方法,不过相比较你的字符流,我是是用字节流在复制
private static void copy(InputStream is, OutputStream os)throws Exception{
byte[] read = new byte[1024];
int len = is.read(read);
while(len!=(-1)){
os.write(read,0,len);
len = is.read(read);
}
}
你可以改进改进再加以应用!
希望能帮到你。
作者:
匿名
时间:
2011-9-19 14:02
授之以渔
【传智播客毕向东Java基础视频教程-day19-03-IO流(通过缓冲区复制文本文件).avi】
作者:
匿名
时间:
2011-9-19 16:54
标题:
回复 板凳 的帖子
板凳貌似没明白我的意思。。。我意思要从一个文件里复制内容到另外一个文件里。。。。另外的那个文件可以让系统创建。。。也可以自己手动创建。。。。不过谢谢你的答案。。。。还是可以回顾的
作者:
匿名
时间:
2011-9-19 16:55
标题:
回复 藤椅 的帖子
嗯 有那么个意思了。。。。谢谢。。。。
作者:
匿名
时间:
2011-9-19 21:31
应该满足楼主的要求吧[code]package IO;
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
File f= new File("G:/ServerDemo.java"); //在这个文件读取数据
File f2= new File("G:22.txt"); // 复制到这个文件
if(f2.exists()){ // 如果文件不存在就创建
f2.createNewFile();
}
FileWriter fw= new FileWriter(f2);
String line;
if(f!=null){
BufferedReader br= new BufferedReader(new FileReader(f));
PrintWriter pw= new PrintWriter( fw,true);
while(br.readLine()!=null){
line=br.readLine();
pw.println(line);
}
}else{
return ;
}
}
} [/code]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2