码迷,mamicode.com
首页 > 其他好文 > 详细

关于InputStream中available()方法的问题

时间:2015-03-03 09:53:19      阅读:823      评论:0      收藏:0      [点我收藏+]

标签:

Enumeration e=FileSystemRegistry.listRoots(); //获取文件路径
        String root = (String) e.nextElement();
        String url="file:///"+root+filename;
        FileConnection conn=null;
        try{
           conn=(FileConnection)Connector.open(url,Connector.READ);        //打开文本文件
            DataInputStream in=conn.openDataInputStream();                  //打开数据输入流
            int size=in.available();                                        //检查文本文件大小
            System.out.println(size);
           byte[] buffer=new byte[size];                                   //创建文本缓冲区
            in.read(buffer);                                                //将所有内容读入缓冲区
            String content=new String(buffer,encoding);                     //用缓冲区中的内容创建字符串
            content=content.substring(1);
           buffer=null;                                                    //释放缓冲区
            in.close();                                                     //关闭数据输入流
           conn.close();                                                   //关闭文本文件
            in=null;
           .....

int size=in.available();获取的大小为0,但如果手动设置buffer大小,是能够读取文件的数据,那么说输入流应该是正常的,但为什么in.available()却不能获得输入流的大小呢,


如果你只是想得到文件大小。可以直接用int size=(int)conn.fileSize();InputSteam的available()方法如果没被重写的话永远返回0。FileInputStream实现了available()方法,可以得到值

关于InputStream中available()方法的问题

标签:

原文地址:http://blog.csdn.net/luo446718254/article/details/44034155

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!