日期:2014-05-20  浏览次数:20648 次

在java编写类的时候出来问题,请教各位哈--走过、路过都来看看哈!
这是我编写的一个类
import java.io.*;
public class FileReaderAndFileWriterTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
test();
}
public static void test(){
String name1="新建文本文档.txt";
String name2="新建文本文档副本.txt";
try{
FileReader fr=new FileReader(name1);
FileWriter fw=new FileWriter(name2);
char[] c=new char[1];
while(fr.read(c)!=-1)
{
fw.write(c);
System.out.print(c); }
fr.close();
fw.close();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}

}
这样没问题,输出地是新建文本文档中的内容:god is a girl.这是正确的。
重点在的是:当我把System.out.print(c)这句改为System.out.print("---"+c)后,输出地结果是这个样子了:---C@422ede

为什么会出现这种状况?为什么不是显示的是---god is a girl

------解决方案--------------------
char[]转化为String了。
------解决方案--------------------
探讨
System.out.print(c);

------解决方案--------------------
因为c被声明为char []数组,如果直接打印c的话,默认输出数组引用的十六进制的内存地址,所以这个样子,如果是""+c的话,有个运算符重载,所以会输出c的字符数组的内容,就是这个原因
------解决方案--------------------
哦,是c.toString和System.out.print(char[] c)之间的不同造成的,那就这样做
System.out.print("---");
System.out.print(c);