RTpackage com.test2;import java.io.*;
public class TestDemo {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub File a=new File("d:\\test","aaa.txt");
a.createNewFile();
FileOutputStream CC=new FileOutputStream(a);
String str="文件复制";
byte[] bb=str.getBytes();
CC.write(bb);
FileReader rea=new FileReader(a);
int c1=rea.read();
File b=new File("d:\\test2","bbb.txt");
b.createNewFile();
FileWriter wri=new FileWriter(b);
while(c1!=-1)
{
wri.write(c1);
}
}
}
public class TestDemo {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub File a=new File("d:\\test","aaa.txt");
a.createNewFile();
FileOutputStream CC=new FileOutputStream(a);
String str="文件复制";
byte[] bb=str.getBytes();
CC.write(bb);
FileReader rea=new FileReader(a);
int c1=rea.read();
File b=new File("d:\\test2","bbb.txt");
b.createNewFile();
FileWriter wri=new FileWriter(b);
while(c1!=-1)
{
wri.write(c1);
}
}
}
{
wri.write(c1);
}
这明显是个无限循环
while(c1!=-1)循环的话 至少你要往下动一动啊 next或者hasnext 或者计数器++ 什么的
while((c1=rea.read())!=-1)
{
wri.write(c1);
}
这样就没问题了吧
这个是判断是否可以读取的
写读入流给你个地址 自己看去
http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html
public static void main(String[] args) throws IOException {
File a = new File("d:\\aaa.txt");
a.createNewFile();
FileOutputStream CC = new FileOutputStream(a);
String str = "文件复制";
byte[] bb = str.getBytes();
CC.write(bb); FileReader rea = new FileReader(a);
File b = new File("d:\\bbb.txt");
b.createNewFile();
FileWriter wri = new FileWriter(b);
int c1;
while((c1 = rea.read()) != -1) {
System.out.println(c1);
wri.write(c1);
wri.flush();
}
}
while(c1!=-1)
{
wri.write(c1);
}
你的这个c1只有一个值,明显无限循环.
错误二:rea.read()一次只能读出一个字节,中文每个字占两个字节。所以会出乱码。而英文每个字母一个字节。如果是单纯的为了实现文件复制,可以用下面的代码段来实现import java.io.*;
import java.util.Scanner;
public class dd{
static Scanner tc=new Scanner(System.in);
public static void main(String arg[]) throws IOException{
File f1=new File("1.txt");//改成你的文件路径和名字
File f2=new File("2.txt");//实现复制新文件
/*实现覆盖:File f2=new File(f1);*/
FileWriter fw=new FileWriter(f2);
Scanner tc=new Scanner(f1);
while(tc.hasNextLine()){
fw.write(tc.nextLine()+"\r\n");
tc.hasNextLine();
}
fw.close();
}
}
代码是经过测试后貼上来的,请不要注重代码。
应该多重思路思想和检查错误。