黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java文件流的輸入和輸出

Java文件流的輸入和輸出

更新時(shí)間:2020-08-20 16:18:14 來源:動力節(jié)點(diǎn) 瀏覽2178次

1. java輸入流類

String?strFile?=?"Data/DataGroup.cpp";
?輸入讀取文件路徑
File?=?new?File(strFile);引入File.io包,實(shí)例化文件對象
InputStream?in?=?null;?
?定義文件輸入流in?=?new?FileInputStream(file);文件輸入流讀取文件
創(chuàng)建合適文件大小的數(shù)組,一次性把數(shù)據(jù)從文件中讀出
b1?=?new?byte[(int)file.length()]??;當(dāng)內(nèi)容為空時(shí)返回-1,可以以此作為判斷文件內(nèi)容是否讀取完畢????????
in.read(b1);???????
?讀取文件中的內(nèi)容到b[]數(shù)組,如果read()返回讀取的字節(jié)內(nèi)容,in.close();關(guān)閉
textArea.append(new?String(b1));

2. 文件輸出流

String strOut = "*Data/DataGroup_copy.cpp";
File file = new File(strOut);
OutputStream output = null;
output = new FileOutputStream(file);
  輸出流中寫入文件內(nèi)容
output.write(b1);
讀取輸入流中b1的字節(jié)數(shù)組
output.close();

3. 工作中的輸入輸出流

工作上的文件輸入輸出流都要判斷流是否讀取完整
while(((len0 = fis.read(buf)) != -1)){
      baos.write(buf, 0, len0);
  }  
bao代表上面的b1字節(jié)數(shù)組
System.arrayCopy
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    代碼解釋:
   Object src : 原數(shù)組
   int srcPos : 從元數(shù)據(jù)的起始位置開始
  Object dest : 目標(biāo)數(shù)組
   int destPos : 目標(biāo)數(shù)組的開始起始位置
  int length  : 要copy的數(shù)組的長度

例如:

 //2.寫入文件名本身
    System.arraycopy(fnameBytes, 0, bytes, 4, fnameBytes.length);

4. 壓縮程序

public class Archiver {
        public static void main(String[] args) throws Exception {
            FileOutputStream fos = new FileOutputStream("d:/arch/x.xar",true);
            fos.write(addFile("d:/pie.png"));
            fos.close();
        }
        
        /**
         * path : d:/xxx/xxx/a.jpg
         */
        public static byte[] addFile(String path) throws Exception{
            //文件
            File f = new File(path);
            //文件名
            String fname = f.getName();
            //文件名數(shù)組
            byte[] fnameBytes = fname.getBytes() ;
            //文件內(nèi)容長度
            int len = (int)f.length();
            
            //計(jì)算總長度
            int total = 4 + fnameBytes.length + 4 + len ;
            
            //初始化總數(shù)組
            byte[] bytes = new byte[total];
            
            //1.寫入文件名長度
            byte[] fnameLenArr = Util.int2Bytes(fnameBytes.length);
            System.arraycopy(fnameLenArr, 0, bytes, 0, 4);
            
            //2.寫入文件名本身
            System.arraycopy(fnameBytes, 0, bytes, 4, fnameBytes.length);
            
            //3.寫入文件內(nèi)容長度
            byte[] fcontentLenArr = Util.int2Bytes(len);
            System.arraycopy(fcontentLenArr, 0, bytes, 4 + fnameBytes.length, 4);
            
            //4.寫入文件內(nèi)容
            //讀取文件內(nèi)容到數(shù)組中
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            FileInputStream fis = new FileInputStream(f);
            byte[] buf = new byte[1024];
            int len0 = 0 ;
            while(((len0 = fis.read(buf)) != -1)){
                baos.write(buf, 0, len0);
            }
            fis.close();
            //得到文件內(nèi)容
            byte[] fileContentArr = baos.toByteArray();
            System.arraycopy(fileContentArr, 0, bytes, 4 + fnameBytes.length + 4, fileContentArr.length);
            return bytes ;
        }
    }

以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java文件流的輸入和輸出”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 好男人www社区资源在线观看 | 老司机午夜精品视频你懂的 | h肉动漫在线视频无修无遮挡 | 日本欧洲亚洲一区在线观看 | 在线播放 亚洲 | 国产真实乱freesex | 国产精品午夜免费观看网站 | 九九精品久久 | 国产精品人人爽人人做 | 亚洲精品高清在线观看 | 日韩欧美国产综合 | 成人激情黄色 | 日韩中文字幕视频在线 | 国产精品成在线观看 | 鲁丝片一区二区三区毛片 | 国产人成精品综合欧美成人 | 免费的黄色片 | 日韩免费一区二区 | 男女后进式猛烈xx00动态图片 | 久久亚洲成人 | 人成免费网站 | 久久成人国产精品 | a在线观看免费视频 | 成人18免费网 | 国产亚洲精品日韩已满十八 | 国产丰满眼镜女在线观看 | 国产特黄特色a级在线视 | 欧美羞羞 | 麻豆精品国产剧情在线观看 | 国产高清在线视频一区二区三区 | 成在线人免费视频一区二区三区 | 一级特黄录像免费播放中文版 | 国产精品国产 | 二区久久国产乱子伦免费精品 | 黄色片视频免费观看 | 成年片人免费www | 国产视频日本 | 中文字幕一区波多野结衣 | 国产乱在线观看视频 | 97青草最新免费精品视频 | 青青青国产依人在线视频97 |