java 板


LINE

※ 引述《PsMonkey (痞子军团团长)》之铭言: : 这个篇文章当中充满了不确定的叙述 : ※ 引述《Neilhg (Arfken)》之铭言: : : 请教板上的高手一些inputstream关念的问题 : : fin是一个File物件 : : fis = new FileInputStream(fin); : : br = new BufferedReader(new InputStreamReader(fis)); : : String line = br.readLine(); ....... : : fis是一个FileInputStream物件 : : fis被使用来读取一个档案之後 : ^^^^^^^^^^^^^^^^^^^^^^ : : 并没有close掉,再继续使用fis物件读取档案的位元组到一个位元阵列 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : : 例如,fis.read(xx); : : 但结果显示读到0个位元组 : : 把fis.close()之後,再重新new一个fis物件 : : 就可以正确读取了... : : 还满不明白为什麽FileInputStream物件用过一次後不能重覆使用.... : : 感谢~ File fin = new File("xxxxx"); fis = new FileInputStream(fin); br = new BufferedReader(new InputStreamReader(fis)); String line = br.readLine(); int count = 0; while (line != null) { System.out.println(line); line = br.readLine(); count++; } System.out.println("共读到" + count + "行"); //fis.close(); //fis = new FileInputStream(fin); int total = 0; count = 0; byte[] ba = new byte[8192]; while ((count = fis.read(ba)) != -1) { total += count; } System.out.println("共读到" + total + "个位元组"); 很抱歉我以为我的问题很简单,用文字描述就够了 上面是我想问的问题相关的码 我不太懂的是 当我没有注解那两行(fis.close();fis = new FileInputStream(fin);) 执行出来会得到"共读到0个位元组" 但是注解那两行取消掉,就会得到正确的答案 我心里的想法是一个物件new出来之後不是可以重复使用吗? 所以我new一个fis = new FileInputStream(fin)物件就好了 为何再让fis物件读一次档会读到0个位元组 一定要重新new一个物件fis来读档? 旧的fis就不能用了吗? 旧的fis就一直让它在记忆体内吗? 不太懂背後的原因 谢谢赐教 : 我不太懂你为甚麽要重复使用(嫌弃 GC?) : 重点是... 如果你已经读到没有东西了 : (我假设你那句「使用来读取一个档案之後」是这个意思) : 那麽,人家都精尽人亡了,你还要人家可以 read() 到东西 : 这样会不会太过分了点? : 或着反过来说,如果这样还读得到东西 : 那你永远不知道什麽时候档案读完 [死] : 以上毫无反应,就只是个算命文 : 我相信乡民们看我这种无意义的算命文也看的很厌烦了 : 请你把你的剧本 / 程式码叙述的完整一点 : 这样才可能快速地解决你的问题 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.80.239.79
1F:推 PsMonkey:程式码也不缩排,然後我算命已经算中了你还发文问? 05/30 22:21
2F:→ cuteclare:本来就不是设计成要这样用的啊...不爽不要用啦 ! 05/30 22:30
3F:推 PsMonkey:楼上也太激动了点.... 05/30 22:34
4F:推 cuteclare:Q_Q 板主最近心情真好 05/30 22:37
5F:推 demisoda:流的游标已跑到档案的最後,再new一个是类似重置游标 05/30 22:39
6F:→ PsMonkey:囧> 我一直都这样阿... 上一篇的 ph 值应该也没多高 XD 05/30 22:42
7F:→ realmeat:你有看过河水倒流吗? XDXD 05/30 22:49
8F:→ cuteclare:mm 突然想问原po期望它可以read到啥东西 05/30 22:54
9F:推 mars90226:我想你要先懂Stream的概念,不过你可以rewind 05/30 23:02
10F:→ mars90226:Java FileInputStream竟然没有rewind...(倒) 05/30 23:05
11F:→ realmeat:rewind 不是c的鬼东西吗? XDXD 05/30 23:13
12F:推 fonz:画个图 fin没有注解那两行~最後指在哪里吧 加油~ 05/31 00:24
13F:→ fonz: fis打错了=_=" 05/31 00:26
14F:推 sbrhsieh:有mark/reset,非每个inputstream实作都支援 05/31 03:41
15F:推 sbrhsieh:还有java.io.RandomAccessFile可选用 05/31 03:46
16F:→ gmoz:缩排一下好不好= = 05/31 13:50
17F:→ gmoz:然後你先去搞清楚什麽是Stream 跟FileInputStream的运作原理 05/31 13:52







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP