首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于InputStream的markSupported方法的有关问题

2012-03-05 
关于InputStream的markSupported方法的问题我想问一下:markSupported()在什么情况下返回true?也就是说什么

关于InputStream的markSupported方法的问题
我想问一下:
markSupported()在什么情况下返回true?
也就是说
什么样的FileInputStream是支持mark和reset方法的?
另外,
for(int   i   =   0;   i   <   fis.availble();i++)
{
          fos.write(fis.read());
}
其中fos,fis分别表示FileOutputStream和FileInputStream的对象
为什么这个循环只执行了fis实际大小的一半呢?

[解决办法]
up
[解决办法]
RandomAccessFile打开的?
[解决办法]
1)
BufferedInputStream支持markSupported(),你可以用如下的方法打开一个文件:

BufferedInputStream in = new BufferedInputStream( new FileInputStream( fileName ) );

2)你写的
for(int i = 0; i < fis.availble();i++)
{
fos.write(fis.read());
}

有问题,应该改为:

for(;;)
{
int ch = fis.read();
if( ch < 0 ) break;
fos.write( ch );
}

热点排行