国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            文件IO流

            發(fā)布時(shí)間:2021-12-03 點(diǎn)擊數(shù):669

            文件與流

            內(nèi)存:斷電后所數(shù)據(jù)都丟失,程序結(jié)束后所有變量、對(duì)象都被系統(tǒng)回收


            文件:斷電后數(shù)據(jù)不丟失,以文件為單位進(jìn)行操作


            根據(jù)流向和數(shù)據(jù)單位可以分成4種流

               輸入字節(jié)流


               輸出字節(jié)流



               輸入字符流


               輸出字符流


               輸入輸出是站在內(nèi)存的角度,讀寫(xiě)是站在文件的角度


            輸入(從內(nèi)存)——讀


            輸出——寫(xiě)


            操作文件的步驟

            讀文件

            創(chuàng)建文件和對(duì)象的關(guān)聯(lián)

            使用File類(lèi)來(lái)創(chuàng)建文件對(duì)象



            創(chuàng)建數(shù)據(jù)流通道

            InputStream類(lèi)是所有輸入字節(jié)流的父類(lèi),它是一個(gè)抽象類(lèi)


            實(shí)際的文件操作使用FileInputStream類(lèi)來(lái)完成


            這個(gè)類(lèi)會(huì)拋出一個(gè)異常FileNotFoundException



            讀取文件

            int read( )                   每次讀取一個(gè)字節(jié)的數(shù)據(jù),存入返回值中,結(jié)束時(shí)返回-1


            int read(byte[] b)       每次讀取b.length個(gè)字節(jié)的數(shù)據(jù),存入數(shù)組b中,結(jié)束時(shí)返回-1



            關(guān)閉流通道

            close( )



            寫(xiě)文件

            創(chuàng)建文件的關(guān)聯(lián)

            使用File類(lèi)來(lái)創(chuàng)建文件對(duì)象


            創(chuàng)建數(shù)據(jù)流通道

            OutputStream類(lèi)是所有輸出字節(jié)流的父類(lèi),它是一個(gè)抽象類(lèi)


            FileOutputStream類(lèi)來(lái)完成文件的寫(xiě)操作


            這個(gè)類(lèi)會(huì)拋出一個(gè)異常FileNotFoundException



            當(dāng)寫(xiě)入的文件不存在時(shí),會(huì)先創(chuàng)建文件,再進(jìn)行寫(xiě)入

            當(dāng)寫(xiě)入的文件存在時(shí),會(huì)將內(nèi)容清空,再?gòu)念^寫(xiě)入

            當(dāng)寫(xiě)入的文件存在時(shí),并且將append參數(shù)設(shè)為true時(shí),數(shù)據(jù)將寫(xiě)入到文件末尾


            寫(xiě)入文件

            write(int b)


            write(byte[]  b)


            關(guān)閉流通道

            close( )



            字節(jié)緩沖流

            緩沖輸入字節(jié)流  BufferedInputStream


            緩沖輸出字節(jié)流  BufferedOutputStream



            處理過(guò)程


            創(chuàng)建文件和對(duì)象的關(guān)聯(lián)

            創(chuàng)建數(shù)據(jù)流通道

            基于流通道,創(chuàng)建緩沖流通道

            讀/寫(xiě)文件

            關(guān)閉流通道


            字符流

            輸入字符流


            Reader類(lèi)是所有輸入字符流的父類(lèi),它是一個(gè)抽象類(lèi)


                 實(shí)際的文件操作使用FileReader類(lèi)來(lái)完成



            輸出字符流


                 Writer類(lèi)是所有輸出字符流的父類(lèi),它是一個(gè)抽象類(lèi)


                 實(shí)際的文件操作使用FileWriter類(lèi)來(lái)完成



            處理過(guò)程


            創(chuàng)建文件和對(duì)象的關(guān)聯(lián)

            創(chuàng)建數(shù)據(jù)流通道

            讀/寫(xiě)文件

            關(guān)閉流通道


            結(jié)論:


                 如果要處理非文本文件,如音頻、視頻、圖片等,使用字節(jié)流


                 如果要處理文本文件,如.txt文件,使用字符流


            字符緩沖流

            緩沖輸入字符流


                 BufferedReader


                                String  readLine()   每次從文件中讀一行文本



            緩沖輸出字符流


                 BufferedWriter


                                void  newLine( )    向文件中寫(xiě)入1個(gè)空行



            字符緩沖流在原有的功能上進(jìn)行了擴(kuò)展



            處理過(guò)程


            創(chuàng)建文件和對(duì)象的關(guān)聯(lián)

            創(chuàng)建數(shù)據(jù)流通道

            基于流通道,創(chuàng)建緩沖流通道

            讀/寫(xiě)文件

            關(guān)閉流通道


            異常處理

            在文件操作過(guò)程中要處理異常的原因


            保證數(shù)據(jù)的完整性

            保證資源及時(shí)釋放


            保證close會(huì)被執(zhí)行


            對(duì)象流

            輸入對(duì)象流 ObjectInputStream


                         Object   readObject()



            輸出對(duì)象流 ObjectOuputStream


                      void     writeObject(Object obj)



            處理過(guò)程


            創(chuàng)建文件和對(duì)象的關(guān)聯(lián)

            創(chuàng)建數(shù)據(jù)流通道

            基于流通道,創(chuàng)建對(duì)象流通道

            讀/寫(xiě)文件

            關(guān)閉流通道

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


                  File file =new File("e:/test.txt");


                  student stu =new student();


                  //寫(xiě)入對(duì)象


                  FileOutputStream fo=new FileOutputStream(file);


                  ObjectOutputStream oo=new ObjectOutputStream(fo);


                  oo.writeObject(stu);


                  oo.close();


                  System.out.println("done");


             }


            說(shuō)明:要將對(duì)象寫(xiě)入文件,該要實(shí)現(xiàn)Serializable接口



            結(jié)論:文件和內(nèi)存是完全不同的使用方式,因此我們不能象使用集合那樣去操作文件中的對(duì)象


                 對(duì)文件通常進(jìn)行整體處理


                        寫(xiě)入處理


            將多個(gè)對(duì)象保存到集合

            將集合一次性的寫(xiě)入文件


            讀出處理


            將文件讀入一個(gè)集合中

            再對(duì)集合中的對(duì)象進(jìn)行操作


            打印流

            PrintStream


            通常用于輸入Log日志



            處理過(guò)程


            創(chuàng)建文件和對(duì)象的關(guān)聯(lián)

            創(chuàng)建數(shù)據(jù)流通道

            基于流通道,創(chuàng)建打印流通道

            讀/寫(xiě)文件

            關(guān)閉流通道



            1.delete目錄下全部文件:


            file.delete不能刪除非空目錄

            public class fileclear {  public static void main(String[] args) {  File file=new File("E:\\Youku Files\\youkudisk");  delect(file);  }  public static  void delect(File file1){  if(file1.isDirectory()){  File[]files= file1.listFiles();  for (int i = 0; i <files.length ; i++) {  System.out.println(files[i]);  delect(files[i]);  }  file1.delete();  }else file1.delete();  } }

            編寫(xiě)一個(gè)程序,從文件(文件名鍵盤(pán)輸入)得到該文件保存的10個(gè)正整數(shù),并輸出這10個(gè)整數(shù)的最大值和最小值。

            參考答案(Java):

            public class GetMaxMin{

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

            String file = new Scanner(System.in);

            int i, n=10, max=0, min=0 , temp = 0;

            try{

            Reader in = new FileReader(file);

            BufferedReader br=new BufferedReader(new InputStreamReader(in);

            max=min=Integer.parseInt(br.readLine( ));

            } catch ( Exception e ) {

            System.out.println("文件錯(cuò)誤");

            }

            for ( i = 2 ; i <= n ; i ++ ) {

            try {

            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

            temp=Integer.parseInt(br.readLine( ));

            if (temp > max ) max=temp;

            if (temp < min) min=temp;

            }catch( IOException e ) { } ;

            }

            System.out.println("max="+max+"\nmin="+min);

            }

            }

            評(píng)分標(biāo)準(zhǔn):

            1、文件讀取正確可得3分

            2、數(shù)據(jù)讀取方法正確可得3分

            3、判斷大小正確可得2分

            4、循環(huán)正確可得2分