读书人

如何从一个文本中把内容读出来并写到另

发布时间: 2012-01-20 18:53:53 作者: rapoo

怎么从一个文本中把内容读出来并写到另一个文本中
import java.io.*;
public class TestInputOutput
{
public static void main(String[] args) //throws Excepton
{
File f1=new File("D:\\我的文档\\桌面\\cc.txt");
File f2=new File("D:\\我的文档\\桌面\\cc2.txt");
try
{
FileReader fr=new FileReader(f1);
BufferedReader br=new BufferedReader(fr);
FileWriter fw =new FileWriter(f2,true);
PrintWriter pw=new PrintWriter(fw);
String s;
s=br.readLine();
while(!s.equals(""))
{
pw.println(s);
s=br.readLine();
}
br.close();
pw.close();
}
catch(NullPointerException ex)//开始时没写这句,运行时程序报java.lang.NullPonterException加了这句,但生成的cc2.txt里仍没有cc.txt中的内容。
{

}
catch(Exception e)
{
e.printStackTrace();
}

}

}
//以上程序是想把桌面上的cc.txt文本文档的内容读出并写入到桌面上生成的一个cc2.txt中,为什么程序执行后没有报错而且生成了cc2.txt但文档的内容却是空的呢,程序哪点错了??????
//本人菜鸟,请哪位大侠指点一下,最好把可以执行的程序和详解贴给我谢谢。

[解决办法]
试试
while((s=br.readLine())!=null)
{
pw.println(s);
}

可以利用apache的FileUtis来拷贝文件
[解决办法]
PrintWriter pw=new PrintWriter(fw);
改为
PrintWriter pw=new PrintWriter(fw,true);
[解决办法]
但你这个程序会抛空指针异常,并不是正常结束循环的,当没有行给读时,S的值会被赋为NULL而不是""
[解决办法]

探讨
试试
while((s=br.readLine())!=null)
{
          pw.println(s);
}

可以利用apache的FileUtis来拷贝文件

[解决办法]
同意一楼
[解决办法]

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;

public class FileCopy {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File f1=new File("C:\\Documents and Settings\\Administrator\\桌面\\cc.txt");
File f2=new File("C:\\Documents and Settings\\Administrator\\桌面\\cc1.txt");
try
{
FileReader fr=new FileReader(f1);
BufferedReader br=new BufferedReader(fr);
FileWriter fw =new FileWriter(f2,true);
PrintWriter pw=new PrintWriter(fw);
String s;

while((s=br.readLine()) != null)
{
System.out.println(s);
pw.println(s);

}
br.close();
pw.close();
}
catch(NullPointerException ex)//开始时没写这句,运行时程序报java.lang.NullPonterException加了这句,但生成的cc2.txt里仍没有cc.txt中的内容。
{
ex.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}

}
你while循环时出现错误。
原因可能是cc.txt里只有一行数据,那样while循环就不会被执行,就会有空点数异常

[解决办法]
Java code
import java.io.Closeable;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.channels.FileChannel;public class FileChannelCopy {    public static void main(String[] args) throws IOException {        long t0, t1;        t0 = System.currentTimeMillis();        long len = copy("d:/刘宝瑞 - 连升三级.mp3", "d:/刘宝瑞 - 连升三级.bak.mp3");        t1 = System.currentTimeMillis();        System.out.println("copy file length: " + len);        System.out.println("time: " + (t1 - t0));    }        private static long copy(String srcFilename, String destFilename) throws IOException {        return copy(new File(srcFilename), new File(destFilename));    }        private static long copy(File src, File dest) throws IOException {        FileInputStream fis = null;        FileOutputStream fos = null;        try {            FileChannel srcChannel = new FileInputStream(src).getChannel();            FileChannel destChannel = new FileOutputStream(dest).getChannel();            return srcChannel.transferTo(0, src.length(), destChannel);        } finally {            closeIO(fis);            closeIO(fos);        }    }        private static void closeIO(Closeable io) {        if(io != null) {            try {                io.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }} 


[解决办法]

探讨
试试
while((s=br.readLine())!=null)
{
          pw.println(s);
}

可以利用apache的FileUtis来拷贝文件

读书人网 >J2SE开发

热点推荐