Linux下getResourceAsStream的一个问题

今天发现在Linux下使用getResourceAsStream有一个不能完整读取数据的问题。代码如下:

public void testDataCompare() {
    
try {
        InputStream iStream 
= getClass().getResourceAsStream("/data.bin");
        
byte[] dSrc = new byte[iStream.available()];
        iStream.read(dSrc);
            
        FileInputStream fStream 
= new FileInputStream(new File("data.bin"));
        
byte[] dTrg = new byte[fStream.available()];
        fStream.read(dTrg);
            
        boolean success 
= false;
            
        
if(dSrc.length == dTrg.length) {
            
for(int i=0; i<dSrc.length && (success == (dSrc[i] == dTrg[i])); i++);
        }
            
        System.
out.println(success ? "same" : "not same");
    } 
catch(Exception e) {
        e.printStackTrace();
    }
}

注:

  1. iStream及fStream所读取的其实是同一个文件,整个文件大小为902 byte。
  2. Windows及Linux下均使用jdk1.5.0_01。
  3. 程序在Windows下compile及打包成jar。
  4. 将dSrc及dTrg的内容dump出来看,发现dSrc在507 byte之后所有内容均是0。
  5. 同一段代码在Windows XP下完全无问题。

有其他人有类似情况吗?或者有无类似环境可以测试?

posted on 2005-06-17 19:31 毒菇求Buy 阅读(1739) 评论(0)  编辑 收藏 引用 所属分类: JAVALinux

只有注册用户登录后才能发表评论。
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(7)

随笔分类(133)

随笔档案(111)

文章分类(65)

文章档案(53)

相册

收藏夹(30)

BLOG

Book store

Graphics Design

搜索

最新评论

阅读排行榜

评论排行榜