<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    甜咖啡

    我的IT空間

    在Java 7里如何對文件進行操作

    下面的代碼片段是由經(jīng)過驗證的程序修改而來。觀察這些代碼片段你會發(fā)現(xiàn),跟以前的版本相比,在Java7里,文件相關(guān)的操作變得簡單的多了。通過使用新的Files類里提供的各種方法,你可以只用一行代碼就能完成下列的文件操作:

    • 創(chuàng)建文件
    • 刪除文件
    • 復制文件
    • 文件移動/改名

    這篇文件是以你對Java7里提供的新的Path類很熟悉為前提,如果你不熟悉這個類,這里就簡單說一句,Path是文件系統(tǒng)里對位置的一個邏輯概念,例如c:\ 和../foobar.txt都是Path。

    創(chuàng)建和刪除文件

    下面的代碼片段向你展示的是用 Files.createFile (Path target) 方法創(chuàng)建文件的基本用法。

    1. Path target = Paths.get ("D:\\Backup\\MyStuff.txt");
      Path file = Files.createFile (target);  

    很多時候,出于安全的原因,你可能希望在創(chuàng)建的文件上設(shè)置一下屬性,例如:是否可讀/可寫/寫執(zhí)行。這些屬性依賴于文件系統(tǒng)的種類,你需要使用跟文件系統(tǒng)相應(yīng)的權(quán)限輔助類來完成這種操作。例如,PosixFilePermission和PosixFilePermissions為POSIX文件系統(tǒng)設(shè)計的。下面的是在POSIX文件系統(tǒng)上的文件設(shè)置讀寫權(quán)限的用法。

    1. Path target = Paths.get ("D:\\Backup\\MyStuff.txt");
      Set<PosixFilePermission> perms = PosixFilePermissions.fromString ("rw-rw-rw-");
      FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute (perms);
      Files.createFile (target, attr);

    這個java.nio.file.attribute包里提供了很多關(guān)于FilePermission的類。

    警告當創(chuàng)建一個帶有權(quán)限屬性的文件時,請注意包含這個文件的文件夾是否有權(quán)限的強制約束。例如,你會發(fā)現(xiàn),由于這些限制,盡管你給創(chuàng)建的文件指定了rw-rw-rw權(quán)限,實際創(chuàng)建的結(jié)果卻是rw-r–r–。

    刪除文件更簡單,使用Files.delete (Path)這個方法。

    1. Path target = Paths.get ("D:\\Backup\\MyStuff.txt");
      Files.delete (target);  

    拷貝和移動文件

    下面的代碼向你展示的是使用Files.copy (Path source, Path target)方法做文件拷貝的基本用法。

    1. Path source = Paths.get ("C:\\My Documents\\Stuff.txt");  
    2. Path target = Paths.get ("D:\\Backup\\MyStuff.txt");
      Files.copy (source, target);  

    經(jīng)常的,在拷貝文件的過程中你可能希望指定一些操作設(shè)置。在Java7里,你可以通過使用StandardCopyOption enum來設(shè)置這些屬性。下面看一個例子。

    1. import static java.nio.file.StandardCopyOption.*;  
    2. Path source = Paths.get ("C:\\My Documents\\Stuff.txt");  
    3. Path target = Paths.get ("D:\\Backup\\MyStuff.txt");
    4. Files.copy (source, target, REPLACE_EXISTING);  

    拷貝操作時可以使用的屬性還包括COPY_ATTRIBUTES (保留文件屬性) 和ATOMIC_MOVE (確保移動事務(wù)操作的成功,否則進行回滾)。

    移動文件的操作跟拷貝很相似,使用Files.move (Path source, Path target)方法。

    同樣,你也可以指定移動操作的屬性,使用Files.move (Path source, Path target, CopyOptions...) 方法里的參數(shù)來設(shè)置。

    1. import static java.nio.file.StandardCopyOption.*;  
    2. Path source = Paths.get ("C:\\My Documents\\Stuff.txt");  
    3. Path target = Paths.get ("D:\\Backup\\MyStuff.txt");
      Files.move (source, target, REPLACE_EXISTING,COPY_ATTRIBUTES);  

    可以看出,新的用于文件操作的NIO.2 API 非常便于使用。

    posted on 2012-04-16 10:25 甜咖啡 閱讀(237) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     

    導航

    <2012年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統(tǒng)計

    常用鏈接

    留言簿(1)

    我參與的團隊

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲成人免费网址| 亚洲AV永久无码精品一区二区国产| 999任你躁在线精品免费不卡| 免费无码又黄又爽又刺激| 人人狠狠综合久久亚洲高清| 久久精品九九亚洲精品天堂| 亚洲日韩乱码中文字幕| 一个人看的www在线观看免费| 亚洲欧洲日产国码无码久久99| 一级看片免费视频| 亚洲精品无码午夜福利中文字幕| 国产免费久久精品99久久| 亚洲精品自在在线观看| 久久aa毛片免费播放嗯啊| 亚洲AV蜜桃永久无码精品| 丁香六月婷婷精品免费观看| 中文亚洲AV片不卡在线观看| 日本三级在线观看免费| 国产jizzjizz视频全部免费| 亚洲AV无码专区在线亚| 成年女人午夜毛片免费视频| 无码乱人伦一区二区亚洲| 一级全免费视频播放| 亚洲精品无码专区在线在线播放| 特级无码毛片免费视频尤物| 亚洲乱码卡一卡二卡三| 永久免费A∨片在线观看| 久久综合亚洲色HEZYO社区| 无码国产精品久久一区免费| 国产av无码专区亚洲av毛片搜| 中文亚洲成a人片在线观看| 精品免费AV一区二区三区| 久久99热精品免费观看牛牛| 亚洲精品在线播放| 少妇亚洲免费精品| 无码人妻丰满熟妇区免费| 亚洲色大成网站www永久男同| 无限动漫网在线观看免费| 日本在线观看免费高清| 亚洲国产成人久久综合一区77 | 国产美女a做受大片免费|