第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

文件傳輸基礎(chǔ)——Java IO流

難度入門
時(shí)長 2小時(shí) 0分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.67
669人評(píng)價(jià) 查看評(píng)價(jià)
9.9 內(nèi)容實(shí)用
9.6 簡潔易懂
9.5 邏輯清晰
  • File.list()方法用于列出當(dāng)前目錄下的子目錄和文件,獲取該目錄下的所有文件?


    File.listFiles()返回的是直接子目錄(文件)的抽象,獲取該目錄下所有文件和目錄的絕對(duì)路徑


    通過list()方法獲取的結(jié)果:

    20140713155846393


    通過listFiles()方法獲取的結(jié)果:

    20140713155615781

    圖轉(zhuǎn)自博客:bingguang1993

    查看全部
    0 采集 收起 來源:遍歷目錄

    2020-01-31

  • File file=new File("E:\\javaio\\imooc"),“\\”或“//”是中間的分隔符,也可以用File.separator。

    file.exists()跟其字面意思一樣,用于判斷文件知否存在

    file.mkdir()可以直接創(chuàng)建文件夾(E:\\javaio\\imooc),file.mkdirs()可以創(chuàng)建多級(jí)目錄,file.createNewFile()可以直接創(chuàng)建文件("E:\\javaio\\日記1.txt"),配合exists做個(gè)if else判斷比較好

    file.delete()刪除

    file.isDirectory()判斷是否是一個(gè)目錄,是返回true,不是目錄或者目錄不存在返回false,file.isFile()判讀是否是一個(gè)文件

    File file2=new File("E:\\javaio","日記1.txt")是另一個(gè)構(gòu)造函數(shù),第一個(gè)參數(shù)代表目錄,第二個(gè)代表文件

    以下為幾種File類中簡單的方法

    查看全部
  • 1.Integer.toHexString(byte)把字節(jié)(轉(zhuǎn)換成了int)以16進(jìn)制的方式顯示 ,byte轉(zhuǎn)換成int相當(dāng)于int后八位為byte原來的,后八位前24位加上24個(gè)0,


    2.Integer.toHexString(byte%0xff)?把前頭的0取掉,只留下后八位


    3.轉(zhuǎn)換成字節(jié)序列用的是項(xiàng)目默認(rèn)的編碼gbk,中文占用2個(gè)字節(jié),英文占用1個(gè)字節(jié)


    4.byte[] byte=s.getBytes()是用默認(rèn)編碼,byte[] byte=s.getBytes(參數(shù))是用參數(shù)指定的編碼(參數(shù)為:“某種編碼”)


    5.utf-8編碼中文占用3個(gè)字節(jié),英文占用1個(gè)字節(jié)


    6.java是雙字節(jié)編碼,utf-16be編碼,字符串一個(gè)字符占兩個(gè)字節(jié), 中文占用2個(gè)字節(jié),英文占用2個(gè)字節(jié)。


    7.當(dāng)你的字節(jié)序列式某種編碼時(shí),這個(gè)時(shí)候想把字節(jié)序列變成字符串,也需要用這種編碼方式,否則會(huì)出現(xiàn)亂碼。String str1=new String(byte):用項(xiàng)目默認(rèn)的編碼,String str2=new String(byte,參數(shù)):用參數(shù)指定的編碼。比如byte[] byte=String.getBytes("utf-8"),那么將此字節(jié)序列變成字符串就要用String str=new Stirng(byte,"utf-8")。用gbk編碼的字節(jié)序列直接用第一種不指定編碼參數(shù)的方法即可,因?yàn)槟J(rèn)的就是用gbk編碼所以不用gbk編碼


    8.文本文件就是字節(jié)序列,可以是任意編碼的字節(jié)序列。如果我們?cè)谥形臋C(jī)器上直接創(chuàng)建文本文件,那么該文本文件只認(rèn)識(shí)ansi編碼,中文系統(tǒng)下,ansi編碼代表gbk編碼


    9.中文機(jī)器上你直接創(chuàng)建一個(gè)文本文件,那么它只能認(rèn)識(shí)ansi編碼(gbk),但是文本文件本身可以放各種編碼,直接粘貼到中文機(jī)器上的無論編碼是哪種它都認(rèn)識(shí),只不過在中文機(jī)器上直接創(chuàng)建時(shí)會(huì)有這個(gè)特殊性。


    10.某個(gè)項(xiàng)目的文本文件只認(rèn)識(shí)項(xiàng)目指定的編碼,換一種別的編碼他就不認(rèn)識(shí)了。比如你把用utf-8編碼的A項(xiàng)目下的文本文件直接拷貝到使用默認(rèn)編碼gbk的B項(xiàng)目下,拷貝的文件里就會(huì)出現(xiàn)亂碼,但如果只是把A項(xiàng)目文本文件中的內(nèi)容拷貝到B項(xiàng)目下的文本文件中,他會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換

    查看全部
    0 采集 收起 來源:文件的編碼

    2020-01-31

  • 一個(gè)類實(shí)現(xiàn)了序列化接口,那么其子類都可以進(jìn)行序列化

    查看全部
  • package com.imooc.io;


    import java.io.FileInputStream;

    import java.io.ObjectInputStream;


    public class ObjectSeriaDemo1 {

    public static void main(String[] args) throws Exception{

    String file = "demo/obj.dat";

    //1.對(duì)象的序列化

    /*ObjectOutputStream oos = new ObjectOutputStream(

    new FileOutputStream(file));

    Student stu = new Student("10001", "張三", 20);

    oos.writeObject(stu);

    oos.flush();

    oos.close();*/

    ObjectInputStream ois = new ObjectInputStream(

    new FileInputStream(file));

    Student stu = (Student)ois.readObject();

    System.out.println(stu);

    ois.close();

    }


    }


    查看全部

  • package com.imooc.io;

    import java.io.Serializable;

    public class Student implements Serializable{

    private String stuno;

    private String stuname;

    //該元素不會(huì)進(jìn)行jvm默認(rèn)的序列化,也可以自己完成這個(gè)元素的序列化

    private transient int stuage;??

    public Student(String stuno, String stuname, int stuage) {

    super();

    this.stuno = stuno;

    this.stuname = stuname;

    this.stuage = stuage;

    }

    public String getStuno() {

    return stuno;

    }

    public void setStuno(String stuno) {

    this.stuno = stuno;

    }

    public String getStuname() {

    return stuname;

    }

    public void setStuname(String stuname) {

    this.stuname = stuname;

    }

    public int getStuage() {

    return stuage;

    }

    public void setStuage(int stuage) {

    this.stuage = stuage;

    }

    @Override

    public String toString() {

    return "Student [stuno=" + stuno + ", stuname=" + stuname + ", stuage="

    + stuage + "]";

    }

    private void writeObject(java.io.ObjectOutputStream s)

    ? ? ? ? throws java.io.IOException{

    s.defaultWriteObject();//把jvm能默認(rèn)序列化的元素進(jìn)行序列化操作

    s.writeInt(stuage);//自己完成stuage的序列化

    }

    private void readObject(java.io.ObjectInputStream s)

    ? ? ? ? throws java.io.IOException, ClassNotFoundException{

    ? s.defaultReadObject();//把jvm能默認(rèn)反序列化的元素進(jìn)行反序列化操作

    ? this.stuage = s.readInt();//自己完成stuage的反序列化操作

    }

    }

    查看全部
  • ?

    java.io.File類用于表示文件(目錄)

    File類只用于表示文件(目錄)的信息(名稱、大小等),不能用于文件內(nèi)容的訪問


    RandomAccessFile java提供的對(duì)文件內(nèi)容的訪問,既可以讀文件,也可以寫文件。

    RandomAccessFile支持隨機(jī)訪問文件,可以訪問文件的任意位置


    (1)java文件模型

    ? 在硬盤上的文件是byte byte byte存儲(chǔ)的,是數(shù)據(jù)的集合

    (2)打開文件

    ? 有兩種模式"rw"(讀寫)? "r"(只讀)

    ? RandomAccessFile raf = new RandomeAccessFile(file,"rw")

    ? 文件指針,打開文件時(shí)指針在開頭 pointer = 0;

    (3) 寫方法

    ? ? raf.write(int)--->只寫一個(gè)字節(jié)(后8位),同時(shí)指針指向下一個(gè)位置,準(zhǔn)備再次寫入

    (4)讀方法

    ? ?int b = raf.read()--->讀一個(gè)字節(jié)

    (5)文件讀寫完成以后一定要關(guān)閉(Oracle官方說明)



    序列化與基本類型序列化

    1)將類型int 轉(zhuǎn)換成4byte或?qū)⑵渌麛?shù)據(jù)類型轉(zhuǎn)換成byte的過程叫序列化

    ? ? ?數(shù)據(jù)---->n byte

    2)反序列化

    ? ? 將n個(gè)byte 轉(zhuǎn)換成一個(gè)數(shù)據(jù)的過程

    ? ? nbyte ---> 數(shù)據(jù)

    3)RandomAccessFile提供基本類型的讀寫方法,可以將基本類型數(shù)據(jù)

    ? ?序列化到文件或者將文件內(nèi)容反序列化為數(shù)據(jù)

    ?IO流(輸入流、輸出流)

    ?字節(jié)流、字符流

    ?1.字節(jié)流

    ?1)InputStream、OutputStream

    ? ? InputStream抽象了應(yīng)用程序讀取數(shù)據(jù)的方式

    ? ? OutputStream抽象了應(yīng)用程序?qū)懗鰯?shù)據(jù)的方式?

    ?2)EOF = End? ?讀到-1就讀到結(jié)尾

    ?3)輸入流基本方法

    ? ?int? b = in.read();讀取一個(gè)字節(jié)無符號(hào)填充到int低八位.-1是 EOF

    ? ?in.read(byte[] buf)?

    ? ?in.read(byte[] buf,int start,int size)

    4)輸出流基本方法

    ? out.write(int b)? 寫出一個(gè)byte到流,b的低8位

    ? out.write(byte[] buf)將buf字節(jié)數(shù)組都寫入到流

    ? out.write(byte[] buf,int start,int size)

    ??

    ?5)FileInputStream--->具體實(shí)現(xiàn)了在文件上讀取數(shù)據(jù)

    ?6)FileOutputStream 實(shí)現(xiàn)了向文件中寫出byte數(shù)據(jù)的方法

    ?7)DataOutputStream/DataInputStream

    ? ? 對(duì)"流"功能的擴(kuò)展,可以更加方面的讀取int,long,字符等類型數(shù)據(jù)

    ? ?DataOutputStream

    ? ? ? ? writeInt()/writeDouble()/writeUTF()


    ?8)BufferedInputStream&BufferedOutputStream

    ?這兩個(gè)流類位IO提供了帶緩沖區(qū)的操作,一般打開文件進(jìn)行寫入

    ?或讀取操作時(shí),都會(huì)加上緩沖,這種流模式提高了IO的性能

    ?從應(yīng)用程序中把輸入放入文件,相當(dāng)于將一缸水倒入到另一個(gè)缸中:

    ?FileOutputStream--->write()方法相當(dāng)于一滴一滴地把水“轉(zhuǎn)移”過去

    ?DataOutputStream-->writeXxx()方法會(huì)方便一些,相當(dāng)于一瓢一瓢把水“轉(zhuǎn)移”過去

    ?BufferedOutputStream--->write方法更方便,相當(dāng)于一飄一瓢先放入桶中,再從桶中倒入到另一個(gè)缸中,性能提高了

    ? ?

    ? ?

    ?2.字符流

    ?1) 編碼問題

    ?2)認(rèn)識(shí)文本和文本文件

    ?java的文本(char)是16位無符號(hào)整數(shù),是字符的unicode編碼(雙字節(jié)編碼)

    ?文件是byte byte byte ...的數(shù)據(jù)序列

    文本文件是文本(char)序列按照某種編碼方案(utf-8,utf-16be,gbk)序列化為byte的存儲(chǔ)結(jié)果

    3)字符流(Reader Writer)---->操作的是文本文本文件

    字符的處理,一次處理一個(gè)字符

    字符的底層任然是基本的字節(jié)序列

    字符流的基本實(shí)現(xiàn)

    ? ?InputStreamReader? ?完成byte流解析為char流,按照編碼解析

    ? ?OutputStreamWriter? 提供char流到byte流,按照編碼處理??

    ? ?

    ? ?FileReader/FileWriter

    ?字符流的過濾器

    ? ?BufferedReader? ?---->readLine 一次讀一行

    ? ?BufferedWriter/PrintWriter? ?---->寫一行? ??

    ? ?

    ? ?

    3.對(duì)象的序列化,反序列化

    1)對(duì)象序列化,就是將Object轉(zhuǎn)換成byte序列,反之叫對(duì)象的反序列化?

    2)序列化流(ObjectOutputStream),是過濾流----writeObject

    ? ?反序列化流(ObjectInputStream)---readObject


    3)序列化接口(Serializable)

    ? ?對(duì)象必須實(shí)現(xiàn)序列化接口 ,才能進(jìn)行序列化,否則將出現(xiàn)異常

    ? ?這個(gè)接口,沒有任何方法,只是一個(gè)標(biāo)準(zhǔn)

    ?

    4) transient關(guān)鍵字

    ? ? private void writeObject(java.io.ObjectOutputStream s)

    ? ? ? ? throws java.io.IOException

    private void readObject(java.io.ObjectInputStream s)

    ? ? ? ? throws java.io.IOException, ClassNotFoundException

    ? ?分析ArrayList源碼中序列化和反序列化的問題

    5)序列化中 子類和父類構(gòu)造函數(shù)的調(diào)用問題


    查看全部

  • 沒看懂的可以來看一下

    http://img1.sycdn.imooc.com//5e207537000188e319201080.jpg

    查看全部



  • http://img1.sycdn.imooc.com//5e2073980001de7519201080.jpg講了一大堆

    查看全部
    0 采集 收起 來源:遍歷目錄

    2020-01-16

  • java IO 1
    查看全部
    0 采集 收起 來源:文件的編碼

    2019-12-20

  • 啦啦啦
    查看全部
    0 采集 收起 來源:遍歷目錄

    2019-12-12

  • 遞歸遍歷目錄

    查看全部
    0 采集 收起 來源:遍歷目錄

    2019-11-02

  • 文件輸入流FileInputStream

    查看全部
  • 文件輸出流FileOutputStream

    查看全部
  • 本教程幾點(diǎn)要點(diǎn):

    RandomAccessFile類的使用,可以使用其中的指針自定義讀取文件中的指定位置,實(shí)現(xiàn)分段讀取,分段存儲(chǔ);

    java文件的保存方式是字節(jié)的形式保存的,byte,因此保存的文件有編碼的問題;

    工程中讀取或者保存在電腦中的文件會(huì)不會(huì)有亂碼,與文件保存時(shí)的編碼,以及工程編碼屬性這兩個(gè)因素有關(guān),需要注意這點(diǎn);

    類的序列化:可重寫writeObject、readObject兩個(gè)方法來自定義類的序列化方法,將某些trasient的屬性自定自定序列化。

    查看全部
    0 采集 收起 來源:文件的編碼

    2019-10-31

舉報(bào)

0/150
提交
取消
課程須知
親,為了更好的學(xué)習(xí)本門課程,需要您對(duì)二進(jìn)制的知識(shí)有所了解,還要熟悉Java的基本語法和面向?qū)ο蟮闹R(shí)。
老師告訴你能學(xué)到什么?
1、了解文件編碼。 2、能夠?qū)ξ募湍夸涍M(jìn)行管理操作。 3、能夠應(yīng)用字節(jié)流和字符流對(duì)文件進(jìn)行讀寫操作。 4、能夠?qū)?duì)象進(jìn)行序列化和反序列化。

微信掃碼,參與3人拼團(tuán)

微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對(duì)慕課網(wǎng)的支持!