黑马程序员技术交流社区
标题:
io问题
[打印本页]
作者:
盛亚昆
时间:
2012-3-23 18:08
标题:
io问题
import java.io.*;
class MyBufferReader
{
//要使用
private FileReader r;//这是什么意思啊
MyBufferedReader( FileReader r)//这个构造函数什么意思啊
{
this.r=r;
}
//可以一次读一行数据的方法
public String myReadLine()throws IOException
{
//定义一个容器,原BufferReader封装的是字符数组,
StringBuilder sb=new StringBuilder();
int ch=0;
while ((ch=r.read())!=-1)
{
if (ch=='\r')
continue;
if (ch=='\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.lengeh()!=0)
return sb.toString();//这是什么意思啊
return null;
}
public void myClose()throws IOException
{
r.close();
}
}
class MyBufferReaderDemo
{
public static void main(String[] args) throws IOException
{
FileReader fr=new FileReader("buf.txt");
MyBufferedReader mybr=new MyBufferedReader(fr);
String line=null;
while ((line=mybr.readLine())!=null)
{
System.out.println(line);
}
mybr.myClose();
}
}
怎么出现错误了呢?
MyBufferReader.java:17: 方法声明无效;需要返回类型
MyBufferedReader( FileReader r)
^
作者:
周建
时间:
2012-3-23 18:18
你的程序是在模拟BufferReader(reader),这是一个装饰类,必须传入一个字符流,所以要定义一个有参构造函数,传入一个流,毕老师用的是StringBuilder,其是和用数组实现差不多,因为是模拟,所以用哪一个随意,只要能实现功能就行;
构造函数名必须和类名相同,你的类是MyBufferReader,而构造函数是MyBufferedReader(),多了两个字母‘er’,所以会报错。
作者:
周四川
时间:
2012-3-23 18:34
import java.io.*;
class MyBufferReader
{
//要使用
private FileReader r;//这是什么意思啊(声明一个私有变量FileReader 别名为r)
MyBufferedReader( FileReader r)//这个构造函数什么意思啊(构造函数是此对象被new(实例化)时,调用的方法)
{
this.r=r;
}
//可以一次读一行数据的方法
public String myReadLine()throws IOException
{
//定义一个容器,原BufferReader封装的是字符数组,
StringBuilder sb=new StringBuilder();
int ch=0;
while ((ch=r.read())!=-1)
{
if (ch=='\r')
continue;
if (ch=='\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.lengeh()!=0)
return sb.toString();//这是什么意思啊(把前面定义的StringBuilder中已经存在的数据转换为字符串返回出去)
return null;
}
public void myClose()throws IOException
{
r.close();
}
}
class MyBufferReaderDemo
{
public static void main(String[] args) throws IOException
{
FileReader fr=new FileReader("buf.txt");
MyBufferedReader mybr=new MyBufferedReader(fr);
String line=null;
while ((line=mybr.readLine())!=null)
{
System.out.println(line);
}
mybr.myClose();
}
}
怎么出现错误了呢?
MyBufferReader.java:17: 方法声明无效;需要返回类型
MyBufferedReader( FileReader r)
作者:
周四川
时间:
2012-3-23 18:37
上面的构造函数名和你的类名不一致,导致出现了问题。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2