成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

第十五章 輸入輸出系統(tǒng)

hankkin / 802人閱讀

摘要:在包下主要包括輸入輸出兩種流,每種輸入輸出流又可分為字節(jié)流和字符流兩大類。輸入輸出是從程序運(yùn)行所在的內(nèi)存的角度而言的。的輸入流主要由和作為基類,而輸出流主要由和作為基類。

本章主要參考和摘自瘋狂java講義上面的(java編程思想的后面看過(guò)后有新的內(nèi)容再補(bǔ)充進(jìn)去吧)。
  輸入輸出是所有程序都必需的部分————使用輸入機(jī)制允許程序讀取外部數(shù)據(jù)(包括磁盤(pán)、光盤(pán)等存儲(chǔ)設(shè)備上的數(shù)據(jù)和用戶輸入的數(shù)據(jù))、使用輸出機(jī)制允許程序記錄運(yùn)行狀態(tài),將程序數(shù)據(jù)輸出到外部(磁盤(pán)、光盤(pán)等存儲(chǔ)設(shè)備當(dāng)中和控制臺(tái)當(dāng)中)。輸入輸出是從程序運(yùn)行所在的內(nèi)存的角度而言的。
  Java的IO起初僅通過(guò)java.io包下的類和接口來(lái)支持,但在java7中在java.nio及其子包下新增了關(guān)于IO的api,被稱為NIO2。
  在java.io包下主要包括輸入、輸出兩種IO流,每種輸入輸出流又可分為字節(jié)流字符流兩大類。其中字節(jié)流以字節(jié)為單位來(lái)處理輸入、輸出操作,而字符流以字符來(lái)處理輸入、輸出操作。
  字節(jié)流和字符流的分法是基于類型區(qū)別上的,但另一方面為了方便理解,可以從功能上將IO流可分為底層結(jié)點(diǎn)流和上層處理流,其中結(jié)點(diǎn)流用于和數(shù)據(jù)源直接關(guān)聯(lián)(但不同的數(shù)據(jù)源關(guān)聯(lián)結(jié)點(diǎn)流的方式可能存在一定的差異,這里的數(shù)據(jù)源可以是文件、內(nèi)存(字符串、數(shù)組等)、線程(管道通信)、網(wǎng)絡(luò)(套接字通信中用到的)等),處理流則可以對(duì)現(xiàn)有的流進(jìn)行包裝,從而允許程序使用統(tǒng)一的輸入、輸出代碼來(lái)讀取不同的物理存儲(chǔ)結(jié)點(diǎn)的資源。
  注意:處理流這個(gè)概念是同時(shí)包含了裝飾者和適配器的。裝飾者必須必須能取代被裝飾者,所以裝飾者與被裝飾者必須是同一類型,也就是說(shuō)二者有共同的父類或者實(shí)現(xiàn)了共同的接口,大部分的處理流是屬于裝飾者。但也有著例外存在,如轉(zhuǎn)換流及其子類(InputStreamReader和OutputStreamWriter),他們是將字節(jié)流轉(zhuǎn)換成了字符流,采用的是一種適配器模式,其本身并沒(méi)有增加或者增強(qiáng)任和功能。

一、File類

  java.io.File類可以代表文件目錄,如果希望在程序中操作文件和目錄,都可以通過(guò)File類來(lái)完成。這里的操作比如可以是:新建、刪除、重命名文件和目錄。但File不能訪問(wèn)文件本身,要訪問(wèn)文件的內(nèi)容還是需要使用輸入輸出流。

public class FileTest
{
    public static void main(String[] args)
        throws IOException
    {
        // 以當(dāng)前路徑來(lái)創(chuàng)建一個(gè)File對(duì)象
        File file = new File("."); 
        // 直接獲取文件名,輸出一點(diǎn)
        System.out.println(file.getName());
        // 獲取相對(duì)路徑的父路徑可能出錯(cuò),下面代碼輸出null
        System.out.println(file.getParent());
        // 獲取絕對(duì)路徑
        System.out.println(file.getAbsoluteFile());
        // 獲取上一級(jí)路徑
        System.out.println(file.getAbsoluteFile().getParent());
        // 在當(dāng)前路徑下創(chuàng)建一個(gè)臨時(shí)文件
        File tmpFile = File.createTempFile("aaa", ".txt", file);
        // 指定當(dāng)JVM退出時(shí)刪除該文件
        tmpFile.deleteOnExit();
        // 以系統(tǒng)當(dāng)前時(shí)間作為新文件名來(lái)創(chuàng)建新文件
        File newFile = new File(System.currentTimeMillis() + "");
        System.out.println("newFile對(duì)象是否存在:" + newFile.exists());
        // 以指定newFile對(duì)象來(lái)創(chuàng)建一個(gè)文件
        newFile.createNewFile();
        // 以newFile對(duì)象來(lái)創(chuàng)建一個(gè)目錄,因?yàn)閚ewFile已經(jīng)存在,
        // 所以下面方法返回false,即無(wú)法創(chuàng)建該目錄
        newFile.mkdir();
        // 使用list()方法來(lái)列出當(dāng)前路徑下的所有文件和路徑
        String[] fileList = file.list();
        System.out.println("====當(dāng)前路徑下所有文件和路徑如下====");
        for (String fileName : fileList)
        {
            System.out.println(fileName);
        }
        // listRoots()靜態(tài)方法列出所有的磁盤(pán)根路徑。
        File[] roots = File.listRoots();
        System.out.println("====系統(tǒng)所有根路徑如下====");
        for (File root : roots)
        {
            System.out.println(root);
        }
    }
}
1.訪問(wèn)文件和目錄 訪問(wèn)文件名相關(guān)的方法

文件檢測(cè)相關(guān)的方法


獲取常規(guī)文件信息

文件操作相關(guān)方法

目錄操作相關(guān)方法


注意:Windows的路徑分割符使用反斜線(),而Java程序當(dāng)中的反斜線表示轉(zhuǎn)義字符,要表示反斜線的話則需要使用兩條反斜線(如"F:abc est.txt")或者直接使用斜線(/)也可以,java支持將斜線當(dāng)成與平臺(tái)無(wú)關(guān)的路徑分隔符。

2.文件過(guò)濾器

  在File類的list(FilenameFilter filter)方法中可以接受一個(gè)FilenameFilter參數(shù)(函數(shù)式接口),通過(guò)該參數(shù)可以只列出符合條件的文件。FilenameFilter這一函數(shù)式接口中的方法是一個(gè)accept(File dir,String name)方法,該方法將對(duì)指定的File即dir(在list方法中傳入的是this即下面代碼中的file)的所有子目錄進(jìn)行的迭代。
  list(FilenameFilter filter)會(huì)循環(huán)調(diào)用accept,每次傳入this和this所在目錄中不同的文件或者子目錄名,如果這個(gè)accept方法返回true.那么list方法會(huì)列出該該子目錄或者該文件。

public class FilenameFilterTest
{
    public static void main(String[] args) 
    {
        File file = new File(".");//.代表當(dāng)前project的目錄
        //如果文件名以.java結(jié)尾,或者文件對(duì)應(yīng)一個(gè)路徑,則返回true
        String[] nameList = file.list((dir,name)->name.endWith(".java")||new File(name).isDirectory);
        for(String name : nameList)
        {
            System.out.println(name);
        }
    }
}
二、理解Java的IO流 流的分類 1.輸入流和輸出流

按照流的流向來(lái)分,可以分為輸入流和輸出流。輸入輸出是從程序運(yùn)行所在的內(nèi)存的角度而言的。

輸入流:只能從中讀取數(shù)據(jù),而不能向其中寫(xiě)入數(shù)據(jù)。

輸出流:只能向其寫(xiě)入數(shù)據(jù),而不能從中讀取數(shù)據(jù)。


Java的輸入流主要由InputStream和Reader作為基類,而輸出流主要由OutputStream和Writer作為基類。他們都是一些抽象基類,無(wú)法直接創(chuàng)建實(shí)例。

2.字節(jié)流和字符流

  字節(jié)流和字符流的用法幾乎完全一樣,區(qū)別于字節(jié)流和字符流所操作的數(shù)據(jù)單元不同————字節(jié)流操作的數(shù)據(jù)單元是8位的字節(jié),而字符流操作的數(shù)據(jù)單元是16位的字符。
  字節(jié)流主要由InputStream和OutputStream作為基類,而字符流則主要由Reader和Writer作為基類。

3.節(jié)點(diǎn)流和處理流

按照流的角色來(lái)分

可以從/向一個(gè)特定的IO設(shè)備(如磁盤(pán)、網(wǎng)絡(luò))讀/寫(xiě)數(shù)據(jù)的流,稱為節(jié)點(diǎn)流,節(jié)點(diǎn)流也被稱為低級(jí)流。

處理流則用于對(duì)一個(gè)已存在的流進(jìn)行連接或者封裝,通過(guò)封裝后的流實(shí)現(xiàn)數(shù)據(jù)讀/寫(xiě)功能。處理流也被稱為高級(jí)流。其實(shí)采用的是一種裝飾者的設(shè)計(jì)模式。

流的概念模型




  從圖中可以看到,對(duì)于輸入/輸出流中字符流和字節(jié)流處理方式是相似的,區(qū)別在于處理的輸入/輸出單位(即水滴)不同而已
  輸入流使用隱式的記錄指針來(lái)表示當(dāng)前正準(zhǔn)備從哪個(gè)“水滴”開(kāi)始讀取,每當(dāng)程序從InoutStream或Writer中取出一個(gè)或者多個(gè)水滴后,記錄指針向后(右)移動(dòng);除此外,InputStream和Reader里都提供一些方法來(lái)控制記錄指針的移動(dòng)。
  對(duì)于圖中的輸出流而言,當(dāng)執(zhí)行輸出時(shí),程序相當(dāng)于依次把“水滴”放入到輸出流的水管中,輸出流同樣采取隱式的記錄指針來(lái)標(biāo)識(shí)當(dāng)前水滴即將放入的位置,每當(dāng)程序向OutputStream或Writer輸出一個(gè)或者多個(gè)水滴后,記錄指針自動(dòng)向后(右)移動(dòng)。
  處理流的功能主要體現(xiàn)在以下兩個(gè)方面:

性能的提高:主要以增加緩沖的方式來(lái)提高輸入/輸出的效率。

操作的便捷:處理流可能提供了一系列便捷的方法來(lái)一次輸入/輸出大批量的內(nèi)容,而不是輸入/輸出一個(gè)或者多個(gè)水滴。

???????處理流可以嫁接在任何已存在的流(包括處理流)的基礎(chǔ)之上,這就允許Java應(yīng)用程序采用相同的代碼、透明的方式來(lái)訪問(wèn)不同的輸入/輸出設(shè)備的數(shù)據(jù)流。

三、字節(jié)流和字符流

  正如上面所說(shuō),字符流和字節(jié)流的操作方式幾乎完全一樣,區(qū)別只在于操作的數(shù)據(jù)單元不同而已————字節(jié)流操作的數(shù)據(jù)單元是字節(jié),字符流操作的數(shù)據(jù)單元是字符。

InputStream和Reader

  InputStream和Reader是所有輸入流的抽象基類,本身并不能創(chuàng)建實(shí)例來(lái)執(zhí)行輸入,但它們是所有輸入流的模板,定義的方法是所有輸入流都可以使用的方法。



  對(duì)比可以發(fā)現(xiàn):兩個(gè)基類的功能基本是一樣的

  下面以InputStream和Reader的子類FileInputStream和FileReader來(lái)舉例,它們都是節(jié)點(diǎn)流————會(huì)直接和指定文件相關(guān)聯(lián)。
  使用數(shù)組其實(shí)就是和我們平時(shí)用水杯而不是用小酒盅去飲水機(jī)接水一樣,用酒盅每次只能先打開(kāi)水龍頭接一滴,然后關(guān)上水龍頭,然后喝完了再去打開(kāi)水龍頭去接下一滴。而用水杯就可以一次打開(kāi)水龍頭之后,接很多很多滴,再關(guān)上水龍頭,喝完之后再去接水??梢钥闯鍪褂盟瓬p少了喝水的次數(shù)的開(kāi)關(guān)水龍頭的次數(shù),其實(shí)就是減少了讀取的次數(shù)。

public class FileInputStreamTest
{
    public static void main(String[] args) throws IOException
    {
        // 創(chuàng)建字節(jié)輸入流
        FileInputStream fis = new FileInputStream("srcIO系統(tǒng)FileInputStreamTest.java");
        
        byte[] bbuf = new byte[1024];//創(chuàng)建一個(gè)長(zhǎng)度為1024的“竹筒”

        int hasRead = 0;//記錄每次實(shí)際讀取的字節(jié)數(shù)

        // 使用循環(huán)來(lái)重復(fù)“取水”過(guò)程
        while ((hasRead = fis.read(bbuf)) > 0 )
        {
            // 取出“竹筒”中水滴(字節(jié)),將字節(jié)數(shù)組轉(zhuǎn)換成字符串輸入!
            System.out.print(new String(bbuf , 0 , hasRead ));
        }
        
        fis.close();// 關(guān)閉文件輸入流,放在finally塊里更安全
    }
}

注意:在創(chuàng)建較小長(zhǎng)度的字節(jié)數(shù)組時(shí),需要多次讀取,而文件保存時(shí)用的是GBK或者UTF-8,每個(gè)中文占兩個(gè)或三個(gè)字節(jié),如果某次讀取時(shí)讀到了不完整的中文字符(1/2,1/3,2/3),就會(huì)出現(xiàn)亂碼。但利用下面的字符流就不會(huì)出現(xiàn)這種情況,因?yàn)樵谧x取中文的時(shí)候會(huì)自動(dòng)轉(zhuǎn)換為unicode字符集的兩個(gè)字節(jié),剛好是一個(gè)char能夠放得下的。詳情參考自己的印象筆記:關(guān)于utf-8所占用的字節(jié)

public class FileReaderTest
{
    public static void main(String[] args)
    {
        try(FileReader fr = new FileReader("srcIO系統(tǒng)FileReaderTest.java"))// 創(chuàng)建字符輸入流
        {
            char[] cbuf = new char[32];//創(chuàng)建一個(gè)長(zhǎng)度為32的“竹筒”
            
            int hasRead = 0;//記錄每次實(shí)際讀取的字符數(shù)
            
            while ((hasRead=fr.read(cbuf)) > 0 )// 使用循環(huán)來(lái)重復(fù)“取水”過(guò)程
            {
                // 取出“竹筒”中水滴(字符),將字符數(shù)組轉(zhuǎn)換成字符串輸入!
                System.out.print(new String(cbuf , 0 , hasRead));
            }
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }
    }
}

  上面的FileInputStreamTest程序最后使用了fis.close()來(lái)關(guān)閉文件輸入流。因?yàn)榕cJDBC編程一樣,程序里打開(kāi)的IO資源不屬于內(nèi)存里的資源,垃圾回收機(jī)制無(wú)法回收該資源,所以顯式關(guān)閉文件IO資源。而在FileReaderTest不需要的原因是,Java7改寫(xiě)了所有的IO資源類,它們都實(shí)現(xiàn)了AutoCloseable接口,因此如果將打開(kāi)IO資源的聲明與初始化寫(xiě)在try的括號(hào)里面,那么在try語(yǔ)句塊結(jié)束后(注意不是在整個(gè)try-catch-finnaly結(jié)束后),打開(kāi)的IO資源會(huì)被虛擬機(jī)自動(dòng)關(guān)閉。

OutputStream和Writer

OutputStream和Writer也有著相似的方法:

  使用FileInputStream和FileOutputStream復(fù)制文件的例子:

public class FileOutputStreamTest
{
    //就是先用輸入流從硬盤(pán)讀到內(nèi)存中,再用輸出流從內(nèi)存中輸出到硬盤(pán)上
    public static void main(String[] args)
    {
        try(FileInputStream fis = new FileInputStream("srcIO系統(tǒng)FileOutputStreamTest.java");// 創(chuàng)建字節(jié)輸入流
            
            FileOutputStream fos = new FileOutputStream("newFile.txt"))// 創(chuàng)建字節(jié)輸出流
        {
            byte[] bbuf = new byte[32];
            int hasRead = 0;
            
            // 循環(huán)從輸入流中取出數(shù)據(jù)
            while ((hasRead = fis.read(bbuf)) > 0 )
            {
                fos.write(bbuf , 0 , hasRead);// 每讀取一次,即寫(xiě)入文件輸出流,讀了多少,就寫(xiě)多少
            }
        }
        catch (IOException ioe)
        {
            ioe.printStackTrace();
        }
    }
}

下面是使用FileWriter進(jìn)行寫(xiě)入的例子:字符串最后有 ,這是windows平臺(tái)的換行符,通過(guò)這種方式就可以讓輸出內(nèi)容換行,如果是unix/linux等平臺(tái),則使用 就是換行符。

public class FileWriterTest
{
    public static void main(String[] args)
    {
        try(
            FileWriter fw = new FileWriter("poem.txt"))
        {
            fw.write("錦瑟 - 李商隱
"); 
            fw.write("錦瑟無(wú)端五十弦,一弦一柱思華年。
");
            fw.write("莊生曉夢(mèng)迷蝴蝶,望帝春心托杜鵑。
");
            fw.write("滄海月明珠有淚,藍(lán)田日暖玉生煙。
");
            fw.write("此情可待成追憶,只是當(dāng)時(shí)已惘然。
");
        }
        catch (IOException ioe)
        {
            ioe.printStackTrace();
        }    
    }
}

四、輸入輸出流體系

  上節(jié)介紹了輸入輸出流的4個(gè)抽象基類,并介紹了4個(gè)訪問(wèn)文件結(jié)點(diǎn)流的用法。借助于處理流,我們可以進(jìn)一步簡(jiǎn)化編程

處理流的用法


  下面是處理流PrintStream的例子,它包裝OutputStream,使用處理流之后可以更方便,在這里的PrintStream體現(xiàn)為:相比OutputStream,可以直接打印字符串、并且設(shè)定打印格式,還能打印其他各種基本數(shù)據(jù)類型的變量。此外還有可以設(shè)置自動(dòng)flush的功能,在調(diào)用了println方法后或者write寫(xiě)入了一個(gè)數(shù)組后或者write寫(xiě)入了r或者n之后自動(dòng)flush。詳細(xì)可參考api或者進(jìn)行測(cè)試

public class PrintStreamTest
{    /**用notepad++實(shí)時(shí)查看文件是否寫(xiě)入是不準(zhǔn)確的的。因?yàn)閚otepad++的機(jī)制可能是在你不操作文件的時(shí)候,
       不定時(shí)地去解除對(duì)文件的占用。當(dāng)未解除占用的時(shí)候,eclipse里面執(zhí)行完寫(xiě)入也是寫(xiě)不進(jìn)去的。
       所以最好是在單步調(diào)試中的每次寫(xiě)入操作完畢后,手動(dòng)打開(kāi)文件查看一下**/
    public static void main(String[] args)
    {
        try(
            FileOutputStream fos = new FileOutputStream("test.txt");
            PrintStream ps = new PrintStream(fos,true)
            )
        {
            // 使用PrintStream執(zhí)行輸出
            ps.println("直掛云帆濟(jì)滄海");
            // 直接使用PrintStream輸出對(duì)象
            ps.println(new PrintStreamTest());
        }
        catch (IOException ioe)
        {
            ioe.printStackTrace();
        }
    }
}

提示:由于PrintStream的功能非常強(qiáng)大,通常如果需要輸出文本內(nèi)容,都應(yīng)該將輸出流包裝秤PrintStream后進(jìn)行輸出。在使用處理流包裝了后,關(guān)閉輸入輸出流資源時(shí),只需要關(guān)閉最外層的處理流即可,系統(tǒng)會(huì)自動(dòng)關(guān)閉該處理流包裝的的節(jié)點(diǎn)流。其實(shí)還是裝飾者設(shè)計(jì)模式的思想

輸入輸出流體系



上面那張圖做了功能上的分類,

文件結(jié)點(diǎn)流

數(shù)組結(jié)點(diǎn)流

字符串結(jié)點(diǎn)流

管道節(jié)點(diǎn)流

打印控制處理流

推回輸入處理流

緩沖處理流

對(duì)象序列化處理流

轉(zhuǎn)換處理流(適配器)

數(shù)據(jù)處理流

???????需要提一下的是轉(zhuǎn)換處理流內(nèi)部其實(shí)也使用了一個(gè)裝飾者的機(jī)制,先將字節(jié)流用StreamDecoder/StreamEncoder進(jìn)行了裝飾,然后再進(jìn)行的適配,這個(gè)裝飾的效果之一就是提供了默認(rèn)大小8192字節(jié)的緩沖區(qū),所以可以說(shuō)適配器也是有著緩沖區(qū)功能的。
  另外還有就是FileWriter和FileReader,按照上面節(jié)點(diǎn)流的定義,查看源碼后,認(rèn)為不應(yīng)該算作是節(jié)點(diǎn)流,而是轉(zhuǎn)換處理流。因?yàn)樗窃谵D(zhuǎn)換流內(nèi)部先根據(jù)文件名等信息先創(chuàng)建了真正的文件節(jié)點(diǎn)流(FileInputStream、FileOutputStream)對(duì)象,再進(jìn)行轉(zhuǎn)換而已。雖然這點(diǎn)上在概念有分歧但并不影響我們的正常使用。

關(guān)于繼承關(guān)系則可以看下面這幾張圖,從原圖的基礎(chǔ)上自己加了文字注釋:




  通常來(lái)說(shuō),字節(jié)流的功能比字符流的功能更強(qiáng)大,因?yàn)橛?jì)算機(jī)里面的所有數(shù)據(jù)都是二進(jìn)制的,而字節(jié)流可以處理所有的二進(jìn)制文件——但問(wèn)題是,如果使用字節(jié)流來(lái)處理文本文件,則需要使用合適的方式把這些字節(jié)轉(zhuǎn)換成字符。所以,通常的規(guī)則是:如果進(jìn)行輸入/輸出的內(nèi)容是文本內(nèi)容,則應(yīng)該考慮使用字符流;如果輸入/輸出的內(nèi)容是二進(jìn)制內(nèi)容,則應(yīng)該考慮使用字節(jié)流。

  此外還有些關(guān)于重定向、讀寫(xiě)其他進(jìn)程的數(shù)據(jù)、任意文件訪問(wèn)類、NIO以及NIO2的相關(guān)知識(shí),可以參看瘋狂java一書(shū)或者其他文章。本篇筆記就寫(xiě)到這了,不能再加了,太卡了...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/72368.html

相關(guān)文章

  • 第十五章:指針類型

    摘要:指針類型的零值指針類型的零值指針類型的零值都是,也就是說(shuō),一個(gè)沒(méi)有存儲(chǔ)地址的指針等于解除引用解除引用一個(gè)指針變量持有另一個(gè)變量的地址。本篇翻譯自《Practical Go Lessons》 Chapter 15: Pointer type1 你將在本章將學(xué)到什么?什么是指針?什么時(shí)指針類型?如何去創(chuàng)建并使用一個(gè)指針類型的變量。指正類型變量的零值是什么?什么是解除引用?slices, maps...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • 《On Java 8》中文版,又名《Java 編程思想》中文第五版

    摘要:基于版本基于版本。由于中英行文差異,完全的逐字逐句翻譯會(huì)很冗余啰嗦。譯者在翻譯中同時(shí)參考了谷歌百度有道翻譯的譯文以及編程思想第四版中文版的部分內(nèi)容對(duì)其翻譯死板,生造名詞,語(yǔ)言精煉度差問(wèn)題進(jìn)行規(guī)避和改正。 來(lái)源:LingCoder/OnJava8 主譯: LingCoder 參譯: LortSir 校對(duì):nickChenyx E-mail: 本書(shū)原作者為 [美] Bru...

    BingqiChen 評(píng)論0 收藏0
  • Yoshua Bengio新書(shū)《Deep Learning》中文版開(kāi)放預(yù)覽

    摘要:新書(shū)中文版發(fā)布。譯者聲明中文翻譯經(jīng)過(guò)個(gè)多月,我們終于完成了翻譯草稿。注意各種問(wèn)題或者建議可以提,建議使用中文??捎糜趯W(xué)習(xí)研究目的,不得用于任何商業(yè)行為。 Yoshua Bengio 新書(shū)《Deep Learning》中文版發(fā)布。該書(shū)由北京大學(xué)張志華老師團(tuán)隊(duì)負(fù)責(zé)翻譯。本書(shū)于學(xué)習(xí)研究目的,不得用于任何商業(yè)行為。下載鏈接:https://github.com/exacity/deeplearnin...

    longshengwang 評(píng)論0 收藏0
  • #yyds干貨盤(pán)點(diǎn)#安全管理制度管理辦法范文

    摘要:第四章安全管理制度發(fā)布第十條安全管理制度必須以正式文件的形式發(fā)布施行。第十一條安全管理制度由信息安全管理小組制訂,信息安全領(lǐng)導(dǎo)小組審批發(fā)布。第二十條安全管理制度的修改與廢止須經(jīng)信息安全領(lǐng)導(dǎo)組織審批確認(rèn),信息安全管理部門(mén)備案。 字?jǐn)?shù) 3610閱讀 760評(píng)論 0贊 3《xxxx安全管理制度匯編》****制度管理辦法****文...

    duan199226 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

hankkin

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<