A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM刘俊 高级黑马   /  2013-4-3 16:13  /  1660 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 HM刘俊 于 2013-4-3 23:08 编辑
  1. import java.io.*;
  2. class demo{
  3. public static void main(String[] args)throws Exception{
  4. FileWriter fg=new FileWriter("C:\\hhhh.txt");
  5. BufferedWriter fd=new BufferedWriter(fg);
  6. fd.write("ajklsssfdfs");
  7. fd.flush();
  8. fd.close();
  9. FileReader kk=new FileReader("C:\\kkk.txt");
  10. BufferedReader hj=new BufferedReader(kk);

  11. System.out.println(hj.readLine()); //我知道这里readLine方法是打印一行的意思。问题是当把它改为read方法时,打印的为什么是一串数字。??
  12. hj.close();

  13. }
  14. }
复制代码
我C:\\kkk.txt输入的是一首中文诗。。。
当用read方法打印为:38738
什么情况?

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

9 个回复

倒序浏览

回复 使用道具 举报
read返回类型是int

QQ截图20130403164438.png (30.26 KB, 下载次数: 27)

QQ截图20130403164438.png

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
一般来说,编译后生成的都是二进制码,你要是想读出来,必须转换类型的
回复 使用道具 举报
发表于 18 分钟前 |只看该作者
一般来说,编译后生成的都是二进制码,你要是想读出来,必须转换类型的

怎么个转换法??
回复 使用道具 举报
read()方法返回值是int类型的,所以你输出肯定是数字,
你必须把它转化成字符在输出,
代码如下,希望对你有所帮助

import java.io.*;
class demo{
public static void main(String[] args)throws Exception{
FileWriter fg=new FileWriter("C:\\hhhh.txt");
BufferedWriter fd=new BufferedWriter(fg);
fd.write("ajklsssfdfs");
fd.flush();
fd.close();
FileReader kk=new FileReader("C:\\kkk.txt");
BufferedReader hj=new BufferedReader(kk);
StringBuffer sb=new StringBuffer();//创建一个StringBuffer用于操作字符串
int count=-1;//定义一个count变量用于接收hj.read()方法的返回值
while((count=hj.read())!=-1)
{
        sb.append(new String((char)count));//调用append()放法,把内容存到sb里面,(char)count把int;类型转化成字符类型
}
System.out.println(sb.toString());
hj.close();

}
}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
庞立森 发表于 2013-4-3 17:36
read()方法返回值是int类型的,所以你输出肯定是数字,
你必须把它转化成字符在输出,
代码如下,希望对你 ...

按照你的代码,我输入了。还是不能转换?
错误提示:
demo.java:15: 找不到符号
符号: 构造函数 String(char)
位置: 类 java.lang.String
        sb.append(new String((char)count));//调用append()放法,把内容存到sb
,(char)count把int;类型转化成字符类型
回复 使用道具 举报
希望你把代码发出来
回复 使用道具 举报
庞立森 发表于 2013-4-4 08:47
希望你把代码发出来

就是你的那段代码呀。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马