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而不是""
------解决方案--------------------
------解决方案--------------------
同意一楼
------解决方案--------------------
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(); } } }}