一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java文件操作之Path,Paths,Files

java文件操作之Path,Paths,Files

2020-09-10 14:20wbb Java教程

Java7中文件IO發(fā)生了很大的變化,專門引入了很多新的類,下面給大家分享用Files作為一個操作類的實例,需要的朋友可以參考

Java7中文件IO發(fā)生了很大的變化,專門引入了很多新的類:

import java.nio.file.DirectoryStream;

import java.nio.file.FileSystem;

import java.nio.file.FileSystems;

import java.nio.file.Files;

import java.nio.file.Path;

import java.nio.file.Paths;

import java.nio.file.attribute.FileAttribute;

import java.nio.file.attribute.PosixFilePermission;

import java.nio.file.attribute.PosixFilePermissions; 

 在以前的操作中,主要通過File構(gòu)造一個文件,然后將File作為入?yún)?,獲取輸入流等操作。Api的操作不是很流暢。在新的文件IO中,用Path取代了File,用Files作為一個操作類,并且封裝了很多非常實用的Api,看完下面的示例,就會有一個新的理解。

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package filespaths;
import org.junit.Test;
import java.io.*;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
/**
 * @Author kingboy
 * @Date 2017/4/13 11:05
 * @Description Path is used to Path Sample
 * @email [email protected]
 */
public class PathTest {
  private static String separator = File.separator;
  /**
   * 構(gòu)建Path
   */
  @Test
  public void constructon(){
    //1.Paths
    Path path = Paths.get("/Users/kingboy/Desktop/");
    Path path1 = Paths.get(URI.create("/Users/kingboy/Desktop/"));
    //2.FileSystems
    Path path2 = FileSystems.getDefault().getPath("/Users/kingboy/Desktop/");
    //3.File
    Path path3 = new File("/Users/kingboy/Desktop/").toPath();
  }
  /**
   * 創(chuàng)建一個空文件/文件夾
   * @throws IOException
   */
  @Test
  public void create() throws IOException {
    //文件夾
    Path path = Paths.get("/Users/kingboy/Desktop/hello");
    if(!Files.exists(path)){
      Files.createDirectory(path);
      //創(chuàng)建多個目錄
      //Files.createDirectories(path);
    }
    //文件
    Path path1 = Paths.get("/Users/kingboy/Desktop/helloFile");
    if(Files.exists(path1)){
      Files.createFile(path1);
    }
  }
  /**
   * 文件屬性
   */
  @Test
  public void getFileProperties() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/text.txt");
    System.out.println(Files.getLastModifiedTime(path));//最后修改時間
    System.out.println(Files.getOwner(path));//擁有者
    System.out.println(Files.getPosixFilePermissions(path));//權(quán)限
    System.out.println(Files.size(path));//文件大小
  }
  /**
   * 讀取一個文本文件
   */
  @Test
  public void readText() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/text.txt");
    //通過bufferedReader讀取
    BufferedReader bufferedReader = Files.newBufferedReader(path, StandardCharsets.UTF_8);//文件編碼
    StringBuilder sb = new StringBuilder();
    String tempString = null;
    while ((tempString = bufferedReader.readLine())!=null){
      sb = sb.append(tempString);
    }
    System.out.println(sb);
    //通過Files方法readAllLines
    List<String> strings = Files.readAllLines(path);
    strings.forEach(s -> System.out.print(s));
    //輸出結(jié)果
    //adsfasdfasdfadsfasdfgsdfsdffsdfsdf
    //adsfasdfasdfadsfasdfgsdfsdffsdfsdf
  }
  /**
   * 拿到文件輸入流
   * @throws IOException
   */
  @Test
  public void getInputStream() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/text.txt");
    InputStream inputStream = Files.newInputStream(path);
  }
  /**
   * 文件寫操作
   */
  @Test
  public void writeFile() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/writeFile");
    BufferedWriter bufferedWriter = Files.newBufferedWriter(path);
    String str = "write file test";
    bufferedWriter.write(str);
    bufferedWriter.flush();
    bufferedWriter.close();
  }
  /**
   * 遍歷一個文件夾
   */
  @Test
  public void traverseDirectory() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/");
    Stream<Path> list = Files.list(path);
    list.forEach(p -> {
      System.out.println(p.getFileName());
    });
  }
  /**
   * 遍歷文件樹
   */
  @Test
  public void traverseTree() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/");
    Stream<Path> walk = Files.walk(path);
    walk.forEach(path1 -> {
//      System.out.println(path1.getRoot());//根目錄
      System.out.println(path1.getFileName());//文件名
//      System.out.println(path1.getParent());//上級目錄
//      System.out.println(path1.getFileSystem());//文件系統(tǒng)
    });
    //還有種方式Files.walkFileTree()
  }
  /**
   * 文件復(fù)制
   */
  @Test
  public void copyFile() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/text.txt");
    Path path2 = Paths.get("/Users/kingboy/Desktop/hello.txt");
    Files.copy(path,path2);
  }
  /**
   * 讀取權(quán)限見上面示例,設(shè)置權(quán)限
   */
  @Test
  public void writePermission() throws IOException {
    Path path = Paths.get("/Users/kingboy/Desktop/text.txt");
    Set<PosixFilePermission> permissionSet = new HashSet<>();
    permissionSet.add(PosixFilePermission.GROUP_WRITE);
    permissionSet.add(PosixFilePermission.OWNER_EXECUTE);
    Files.setPosixFilePermissions(path,permissionSet);
  }
  //還有很多其他操作Api,自己查看方法名,很容易就能分辨出功能。
 }

希望本篇文章對需要的朋友有幫助

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 我半夜摸妺妺的奶C了她软件 | chinese特色video| 日韩欧美亚洲天堂 | 国产亚洲sss在线播放 | 国产精品日本一区二区不卡视频 | 黄+色+性+人免费 | 欧美视频在线一区 | 女毛片 | 久久国产乱子伦免费精品 | 三星w699 | 天堂在线看 | 天堂俺去俺来也www久久婷婷 | 欧美一级视频在线高清观看 | 亚洲精品欧洲久久婷婷99 | 国产黄频在线观看 | 亚洲国产精品久久网午夜小说 | 香港论理午夜电影网 | 日韩欧美精品一区二区 | 亚洲码和乱人伦中文一区 | 美女机机对机机的视频(免费) | 513热点网 | 日本漫画工囗全彩番在线 | 国内交换一区二区三区 | 成年人免费看的视频 | 国产高清视频免费最新在线 | 香蕉国产成版人视频在线观看 | www.爱情岛论坛 | 国产一区二区在线观看视频 | 精品国产成人a区在线观看 精品高潮呻吟99AV无码视频 | 国产精品天天看特色大片不卡 | 青草视频网| 欧美成人v视频免费看 | 欧美精品色精品一区二区三区 | 日韩一级片免费观看 | 欧美日韩亚洲国内综合网俺 | 公妇乱淫在线播放免费观看 | 欧美一级专区免费大片 | 高清国产欧美一v精品 | 全彩孕交漫画福利啪啪吧 | 操bb视频| 美女污视频 |