1.今天同事在学习Hadoop时候,需要向文件写入一些测试数据,于是使用了下面的代码进行测试数据生成
Random random=new Random();
OutputStreamWriter write=null;
try {
write = new OutputStreamWriter(new FileOutputStream(new File("E://log//file01.txt")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedWriter w=new BufferedWriter(write);
int i=1;
while(i<10000)
{
int r=random.nextInt(1000000000);
i=i+1;
w.write(r);
System.out.println(r);
}
w.flush();
结果发现生成的数据全是乱码,这个难为他了,这是为啥,这么简单一个程序咋看也没找出错误,呵呵
查看API文档
public void write(int c)
throws IOException写入单个字符。
这下大概知道啥原因了吧,这里虽然传入的是int类型,但是是写入单个字符,很明显产生的随机数大多
数都无法转换为char,所以产生乱码了。
2.还是同一个同事在项目中使用了大致如下的代码
String s="10000";
char c =s.charAt(4);
int a=0;
System.out.println(c==a);
他希望得到结果为true,但实际上则为false,于是他感到不惑在此希望引以为戒啊!血案。。。。。