亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                Java中的File類和IO流

                Flie類

                1.什么是File類

                File類就是當(dāng)前系統(tǒng)中,文件或文件夾的抽象表示。

                通過使用File類的實例對象,我們就可以通過代碼實現(xiàn)計算機(jī)的文件控制,即文件的增刪改查等操作。

                2.File類的使用

                首先為了保證其他文件的安全性,建議先建立一個Test文件夾專門用于File對象的聯(lián)系。

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

                File f1 = new File(“D:/AAAkejian/作業(yè)/test”);

                File f2 = new File(“D:AAAkejian作業(yè)test1”);

                f1.mkdir();

                f2.mkdir();

                f1 = new File(“D:/AAAkejian/作業(yè)/test/test.txt”);

                f1.createNewFile();

                File f3 = new File(“D:”+File.separator+

                “AAAkejian”+File.separator+

                “作業(yè)”+File.separator+”test1”);

                }

                其中:

                D:/AAAkejian/作業(yè)/test,代表路徑名,“ / ”和“”都表示路徑分隔符;

                在windows系統(tǒng)下,兩種分隔符都支持,在Linux和Mac系統(tǒng)下只支持“ / ”

                使用File.separator,表示動態(tài)分隔符。但在日常開發(fā)中,由于windows系統(tǒng)中兩者都支持,而且在使用“ ”時,還需要考慮轉(zhuǎn)義字符,因此我們常用的路徑分隔符為“ / ”;

                3.File對象的使用

                1)創(chuàng)建目錄或文件

                File f1 = new File(“D:/AAAkejian/作業(yè)/test”);

                //創(chuàng)建目錄

                f1.mkdir();

                f1 = new File(“D:/AAAkejian/作業(yè)/test/test.txt”);

                //創(chuàng)建文件

                f1.createNewFile();

                f1 = new File(“D:/AAAkejian/作業(yè)/test/test2”);

                //創(chuàng)建多級目錄

                f1.mkdirs();

                2)刪除目錄或文件

                //刪除目錄或文件

                f1.delete();

                //當(dāng)程序結(jié)束時再進(jìn)行刪除

                f2.deleteOnExit();

                3)修改目錄或文件

                IO流

                1.什么是IO流

                IO分別是兩個單詞的首字母縮寫,I:Inputstream輸入流 O:Outputstream輸出流

                2.IO流的作用:對文件中的內(nèi)容進(jìn)行操作;

                輸入:讀操作(讀取文件的內(nèi)容) 輸出:寫操作(向文件中寫內(nèi)容)

                這里的輸入輸出是針對java程序而言,從文件中讀取內(nèi)容到Java程序即為輸入;

                同理,從Java程序向文件中寫入內(nèi)容就叫輸出。

                3.IO流的方向

                1)根據(jù)流的方向

                輸入流:程序可以從中讀取數(shù)據(jù)的流

                輸出流:程序可以從中寫入數(shù)據(jù)的流

                2)根據(jù)流的單位

                字節(jié)流:以字節(jié)為單位傳輸數(shù)據(jù)的流

                字符流:以字符為單位傳輸數(shù)據(jù)的流

                3)根據(jù)功能

                節(jié)點流:直接和文件進(jìn)行交互

                處理流:不直接作用在文件上

                IO流中有(字節(jié)輸入/輸出流、字符輸入/輸出流)四個基本流,其他的流都是再這四個流的基礎(chǔ)上進(jìn)行拓展的

                4.Writer字符輸出流

                1)Writer類是所有字符輸出流的跟類

                2)使用Writer向文件中添加內(nèi)容

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

                Writer w1 = new FileWriter(“D:/AAAkejian/WriterTest/test2.txt”);

                String str = “這是第二遍練習(xí)”;

                w1.write(str);

                //該方式則可以進(jìn)行添加而不覆蓋

                Writer w2 = new FileWriter(“D:/AAAkejian/WriterTest/test2.txt”,true);

                str = “這是添加的內(nèi)容”;

                w2.write(str);

                //append也可用于添加

                w1.append(str);

                //刷新流

                w1.flush();

                //關(guān)閉流

                w1.close();

                w2.flush();

                w2.close();

                }

                3)使用Writer直接向文件內(nèi)添加內(nèi)容時,后添加的會覆蓋先添加的內(nèi)容,那么在進(jìn)行內(nèi)容追加時就需要添加上一個true,表示允許追加內(nèi)容到文件中。見上圖

                5.Reader字符輸入流

                1)Reader類是所有字符輸入流的跟類

                2)使用FileReader實現(xiàn)類進(jìn)行文件的讀取操作:

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

                Reader reader = new FileReader(“D:/AAAkejian/ReaderTest/test1.txt”);

                int count = 0;

                char[] cList = new char[10];

                while( (count=reader.read(cList)) !=-1 ){

                String str=new String(cList,0,count);

                System.out.print(str);

                }

                }

                6,結(jié)合輸入輸出流可以實現(xiàn)文件的復(fù)制功能

                public void test1() throws IOException {

                //創(chuàng)建字符輸入流

                FileReader fr = new FileReader(“D:/AAAkejian/Test/test1.txt”);

                //創(chuàng)建字符輸出流

                FileWriter fw = new FileWriter(“D:/AAAkejian/Test/test2.txt”);

                //記錄讀取到的個數(shù)

                int count = 0;

                //每次讀取的內(nèi)容放入這個數(shù)組中

                char[] cList = new char[10];

                while ((count = fr.read(cList))!=-1){

                fw.write(cList,0,count);

                fw.flush();

                }

                fw.close();

                fr.close();

                }

                這里需要注意的是,字符流只適用于文本的輸入輸出,對于圖片,視頻等二進(jìn)制文件則無法使用字符流進(jìn)行操作。

                7.字節(jié)流

                1)字節(jié)輸出流——OutputStream(所有字節(jié)輸出流的父類)

                字節(jié)輸出流的使用,以FileOutputStream為例

                public void test1() throws Exception {

                //定義字節(jié)輸出流對象

                OutputStream osp = new FileOutputStream(“D:/AAAkejian/Test/test1.txt”);

                String str = “Add abcd”;

                //將字符串轉(zhuǎn)化為字節(jié)存入字節(jié)數(shù)組中

                byte[] bList = str.getBytes();

                //寫入文件

                osp.write(bList);

                //刷新流

                osp.flush();

                //關(guān)閉流

                osp.close();

                }

                2)字節(jié)輸入流——InputStream(所有字節(jié)輸入流的父類)

                字節(jié)輸入流的使用,以FileInputStream為例,這里的讀取規(guī)則,與字符輸入流類似,利用循環(huán)進(jìn)行循環(huán)讀取文件內(nèi)容。

                public void test() throws Exception{

                //創(chuàng)建字節(jié)輸入流對象

                InputStream ips = new FileInputStream(“D:/AAAkejian/Test/test1.txt”);

                byte[] bList = new byte[3000];

                int count = 0;

                while( (count=ips.read(bList))!=-1 ){

                //把byte數(shù)組轉(zhuǎn)換為字符串

                String str=new String(bList,0,count);

                System.out.println(str);

                }

                ips.close();

                }

                3)利用字節(jié)輸入輸出流完成圖片的復(fù)制功能

                public void test()throws Exception{

                //定義字節(jié)輸入流對象

                InputStream ips = new FileInputStream(“D:/AAAkejian/Test/test3.png”);

                //定義字節(jié)輸出流對象

                OutputStream ops = new FileOutputStream(“D:/AAAkejian/Test/test1.png”);

                //定義字節(jié)數(shù)組,用于存儲所讀取的內(nèi)容

                byte[] bList = new byte[100];

                int count =0;

                while ((count = ips.read(bList))!=-1){

                ops.write(bList,0,count);

                ops.flush();

                }

                ops.close();

                ips.close();

                }

                8.緩存流

                緩存流是在基礎(chǔ)流(InputStream OutputStream Reader Writer)之上,添加了一個緩沖池的功能,用于提高IO效率,降低IO次數(shù)

                緩沖流的使用:

                public void test()throws Exception{

                //定義字節(jié)輸出流

                OutputStream ops = new FileOutputStream(“D:/AAAkejian/Test/test1.txt”);

                //定義緩存流對象

                BufferedOutputStream bfops = new BufferedOutputStream(ops);

                String str = “new content”;

                byte[] bList = str.getBytes();

                //此時的內(nèi)容在緩沖池中,并未寫入文件

                bfops.write(bList);

                //刷新緩沖池,將緩沖池中的內(nèi)容寫入文件中

                //bfops.flush();

                //h緩存流中的close方法,會先執(zhí)行flush方法

                bfops.close();

                }

                9.對象流

                對象流的意義在于數(shù)據(jù)的持久化,例如游戲存到,就是一種對象流的使用。

                在日常程序運行中,內(nèi)容都是存儲在內(nèi)存中的,而將內(nèi)存中的數(shù)據(jù),存儲到磁盤中,就實現(xiàn)了數(shù)據(jù)的持久化。

                1)對象流輸出的使用——ObjectOutputStream–序列化(存檔):

                public class Role implements Serializable {

                private String name;

                private int level;

                private String power;

                public Role(String name, int level, String power) {

                this.name = name;

                this.level = level;

                this.power = power;

                }

                public String getName() {

                return name;

                }

                public void setName(String name) {

                this.name = name;

                }

                public int getLevel() {

                return level;

                }

                public void setLevel(int level) {

                this.level = level;

                }

                public String getPower() {

                return power;

                }

                public void setPower(String power) {

                this.power = power;

                }

                }

                public void test()throws Exception{

                OutputStream ops = new FileOutputStream(“d:/AAAkejian/Test/test3.txt”);

                ObjectOutputStream oops = new ObjectOutputStream(ops);

                //使用對象流調(diào)用輸出流的輸出方法,被輸出的對象的類必須實現(xiàn)Serializable接口

                Role r1 = new Role(“gjx”,55,”撒潑打滾”);

                oops.writeObject(r1);

                oops.close();

                }

                2)對象輸入流的使用——ObjectInputStream–反序列化(讀檔):

                public void test()throws Exception{

                InputStream ips = new FileInputStream(“D:/AAAkejian/Test/test3.txt”);

                ObjectInputStream oips = new ObjectInputStream(ips);

                Object o = oips.readObject();

                System.out.println(o);

                oips.close();

                }

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月22日 15:34
                下一篇 2022年6月22日 18:09

                相關(guān)推薦

                • 短視頻策劃內(nèi)容的3個要點(短視頻策劃內(nèi)容怎么做)

                  短視頻在制作時,內(nèi)容框架非常重要。如果直奔主題,然后結(jié)束,聚卓告訴你,這樣的短視頻已經(jīng)過時了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

                  2022年11月27日
                • 4308米!“探索二號”科考船攜深海浮游式作業(yè)平臺完成海試

                  近日,我國“探索二號”科考船攜深海浮游式移動作業(yè)平臺與中繼器,赴南海開展海上試驗。該平臺完成了1500米級、2500米級、4500米級三個由淺到深級別的海試驗證,最大工作深度達(dá)到4…

                  2022年11月25日
                • 小紅書平臺的一些機(jī)制及玩法詳解(小紅書玩法有哪些)

                  關(guān)于小紅書 一:小紅書平臺的一些機(jī)制 1. 筆記內(nèi)容的CES評分機(jī)制 2. 筆記流量入口與長尾效應(yīng) 二:小紅書優(yōu)質(zhì)筆記的特點(分維度、類型分析) 1.筆記的本身架構(gòu)組成 維度 2.…

                  2022年11月25日
                • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

                  CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實名認(rèn)證,可以是付費,可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

                  2022年11月25日
                • 博客營銷的3大優(yōu)勢解析(博客營銷怎么做)

                  不知不覺已經(jīng)寫了24篇文章,加上這篇是第25篇了,都是自己這幾年來用過的營銷方法,如果遇到有些不懂的,我會咨詢我的朋友和同事幫忙,盡量讓每一篇有價值,哪怕是對大家有一點點幫助也行,…

                  2022年11月25日
                • 什么是內(nèi)容營銷策略如何策劃一套成功的內(nèi)容營銷策略

                  很多時候,營銷人員會在創(chuàng)作營銷內(nèi)容時感到沮喪,這也是很多企業(yè)至今沒用好數(shù)字化營銷工具的重要原因之一。 舉個例子,您可能會花上數(shù)小時期待制作一些令人驚嘆的東西,實際卻是得到很少的受眾…

                  2022年11月25日
                • 直播帶貨詳細(xì)腳本(直播文案策劃怎么寫)

                  短視頻運營策劃方案怎么寫?涉及哪幾個方面? 我在網(wǎng)上看到好多千篇一律的文章,關(guān)于【短視頻運營策劃方案】這一塊,基本都是在講賬號的內(nèi)容本身。 你內(nèi)容做得再好,卻不掌握算法的規(guī)律,能有…

                  2022年11月25日
                • 閑魚上怎么賣東西快?閑魚賺錢必知技巧(怎么在閑魚里面賣東西)

                  自從閑魚這個平臺出現(xiàn)以后,隨著這些年的發(fā)展,閑魚也成為了很多人開店賺錢的重要途徑。一些新人也想在閑魚上試試水,看看能不能賺到錢。如今閑魚上既可以賣二手閑置物品,也可以賣一些新品,那…

                  2022年11月25日
                • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點)

                  如今抖音這個短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺上開通直播,更具有超強(qiáng)的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個人都能做好的,那么在…

                  2022年11月24日
                • 淘寶直播開通后帶貨鏈接怎么做(淘寶直播需要開通淘寶店鋪嗎)

                  直播帶貨無論是對于商家來說還是主播收益都是非??捎^的,所以不少平臺都有直播帶貨功能,一些小伙伴也想加入淘寶直播,那么淘寶直播開通后帶貨鏈接怎么做?下面小編為大家?guī)硖詫氈辈ラ_通后帶…

                  2022年11月24日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息