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