Java文件流的輸入和輸出

Java文件流的輸入和輸出

長(zhǎng)沙中公優(yōu)就業(yè)      2022-04-20 11:35:01     14

Java文件流的輸入和輸出,1. java輸入流類String?strFile?=?"Data/DataGroup.cpp";?輸入讀取文件路徑File?=?new?File(strFile);引入File.io包,實(shí)

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

1. java輸入流類

String?strFile?=?"Data/DataGroup.cpp";?輸入讀取文件路徑File?=?new?File(strFile);引入File.io包,實(shí)例化文件對(duì)象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);  輸出流中寫(xiě)入文件內(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.arrayCopypublic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)    代碼解釋:   Object src : 原數(shù)組   int srcPos : 從元數(shù)據(jù)的起始位置開(kāi)始  Object dest : 目標(biāo)數(shù)組   int destPos : 目標(biāo)數(shù)組的開(kāi)始起始位置  int length  : 要copy的數(shù)組的長(zhǎng)度

例如:

 //2.寫(xiě)入文件名本身    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();        }                        public static byte[] addFile(String path) throws Exception{            //文件            File f = new File(path);            //文件名            String fname = f.getName();            //文件名數(shù)組            byte[] fnameBytes = fname.getBytes() ;            //文件內(nèi)容長(zhǎng)度            int len = (int)f.length();                        //計(jì)算總長(zhǎng)度            int total = 4 + fnameBytes.length + 4 + len ;                        //初始化總數(shù)組            byte[] bytes = new byte[total];                        //1.寫(xiě)入文件名長(zhǎng)度            byte[] fnameLenArr = Util.int2Bytes(fnameBytes.length);            System.arraycopy(fnameLenArr, 0, bytes, 0, 4);                        //2.寫(xiě)入文件名本身            System.arraycopy(fnameBytes, 0, bytes, 4, fnameBytes.length);                        //3.寫(xiě)入文件內(nèi)容長(zhǎng)度            byte[] fcontentLenArr = Util.int2Bytes(len);            System.arraycopy(fcontentLenArr, 0, bytes, 4 + fnameBytes.length, 4);                        //4.寫(xiě)入文件內(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 ;        }    }

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

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。