| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 702 人关注过本帖
标题:[求助]问个关于文件输入输出流的问题
只看楼主 加入收藏
xhdwell
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2006-5-15
收藏
 问题点数:0 回复次数:6 
[求助]问个关于文件输入输出流的问题

import java.io.*;

public class FileInputStreamDemo{
public static void main(String args[]){
try{
FileInputStreamDemo fd=new FileInputStreamDemo();
String fileName=fd.getClass().getResource("FileInputStreamDemo.java").getFile();
FileInputStream in=new FileInputStream(fileName);

//BufferedReader br=new BufferedReader(new InputStreamReader(in));
while(in.available()>0){
System.out.print((char)in.read());
}
//System.out.println(br.toString());
in.close();

}catch(Exception e){
e.toString();
}

}
}
这个程序的结果就是把文件内容输出在显示终端上,但是我想用这两句注释的语句来代替while循环语句,但结果却不一样。结果是:java.io.BufferedReader@765291.为什么?有高人能帮我解答下吗?

[此贴子已经被作者于2006-8-31 23:57:07编辑过]

搜索更多相关主题的帖子: 文件 new java 输出 String 
2006-08-31 23:56
纯净水
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-8-21
收藏
得分:0 
是不是要写成br.close();

这个世界除了猪谁还快乐着!
2006-09-01 09:38
ruihua
Rank: 1
等 级:新手上路
威 望:1
帖 子:235
专家分:0
注 册:2006-2-21
收藏
得分:0 

首先你得弄清楚直接输出对象名称代表的含义。我把程序改了一下,输出内容相同。

import java.io.*;

public class FileInputStreamDemo{
public static void main(String args[]){
try
{
FileInputStreamDemo fd=new FileInputStreamDemo();
String fileName=fd.getClass().getResource("FileInputStreamDemo.java").getFile();
FileInputStream in=new FileInputStream(fileName);
BufferedReader br=new BufferedReader(new InputStreamReader(in));
do
{
System.out.println(br.readLine());
}
while(br.read()!=-1);
}
catch(IOException e)
{
System.out.println(e.toString());
}

}
}

[此贴子已经被作者于2006-9-1 10:31:13编辑过]


2006-09-01 10:26
ruihua
Rank: 1
等 级:新手上路
威 望:1
帖 子:235
专家分:0
注 册:2006-2-21
收藏
得分:0 

若使用RandomAccessFile,程序将更简单。
import java.io.*;

public class FileInputStreamDemo{
public static void main(String args[]){
try{
FileInputStreamDemo fd=new FileInputStreamDemo();
String fileName=fd.getClass().getResource("FileInputStreamDemo.java").getFile();
RandomAccessFile raf=new RandomAccessFile(fileName,"r");
do
{
System.out.println(raf.readLine());
}
while(raf.read()!=-1);
}catch(IOException e){
System.out.println(e.toString());
}
}
}

[此贴子已经被作者于2006-9-1 10:48:58编辑过]


2006-09-01 10:48
xhdwell
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2006-5-15
收藏
得分:0 

谢谢楼上的~我懂了~


坚持自己的选择!向着理想迈出了第一步!
2006-09-04 01:04
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 

BufferedReader中的toString方法是继承于Object的,并没有重写
以下摘自API
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

所有注释的那两句不行


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-09-04 01:42
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
3楼4楼的程序是不是应该把打开的流关闭啊!!

win32汇编
病毒 加密
目前兴趣所在
2006-09-04 07:29
快速回复:[求助]问个关于文件输入输出流的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014622 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved