关于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 );
}