已采納回答 / 好幫手慕珊
不是一次性都讀取到buf數(shù)組中,看下面的代碼第5行,通過read方法讀到buf數(shù)組中,buf數(shù)組滿了就進行處理(轉換成16進制顯示),然后再接著讀,直到讀到文件末尾為止。FileInputStream in = new FileInputStream("e:\javaio\1.mp3"); byte[] buf = new byte[8 * 1024]; ?int bytes = 0; ?int j = 1; ?while((bytes = in.read(buf,0,buf.length))!=-1)...
2014-11-26
最贊回答 / 源代碼_思無邪
建立數(shù)組進行讀文件,就是為了讀取文件內容時快一些而己,不管你建多大的數(shù)組(當然還受內存大小影響),總會有你一次讀不了的文件。你首先要明白你讀文件是為了干什么?有沒有必要一次將文件都讀到流中,象老師講的例子:復制文件,或者是將大文件分割再合成等就沒有必要一次將文件讀到流中呀。一次性讀不完,老師的例子里說得很清楚了呀:就是那個while((b=in.read(buf, 0, buf.length))!=-1)語句,沒有讀完就一直循環(huán),只到讀到文件尾。
2014-11-26
已采納回答 / 好幫手慕珊
寫入順序和讀取順序一致即可,見下面的代碼,在老師代碼的基礎上加了一個age1屬性,用transient修飾package com.imooc.io;import java.io.Serializable;public class Student implements Serializable{ private String stuno; private String stuname; //該元素不會進行jvm默認的序列化,也可以自己完成這個元素的序列化 private transient int stua...
2014-11-18
最贊回答 / 小王子抓貓咪
樓上的回答不正確,正確的答案:int是4個字節(jié),long和double都是8個字節(jié)。writeChars方法采用UTF16編碼,一個漢字是2個字節(jié)。writeUTF方法采用UTF8編碼,一個漢字是3個字節(jié)。所以計算出34個字節(jié),那么多余的2個字節(jié)是從哪里來的呢?告訴你,是從WriteUTF方法得來的2個字節(jié)。請看API:void writeUTF(String?s)?throws IOException將表示長度信息的兩個字節(jié)寫入輸出流,后跟字符串 s 中每個字符的 UTF-8 修改版表示形式。如果 s ...
2014-11-02