Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
howtodoinjava-zh
提交
4ebd19e0
H
howtodoinjava-zh
项目概览
OpenDocCN
/
howtodoinjava-zh
11 个月 前同步成功
通知
1
Star
82
Fork
8
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
howtodoinjava-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4ebd19e0
编写于
5月 21, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-05-21 22:54:45
上级
46bcf382
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
28 addition
and
22 deletion
+28
-22
docs/java/76.md
docs/java/76.md
+7
-6
docs/java/77.md
docs/java/77.md
+2
-2
docs/java/78.md
docs/java/78.md
+4
-4
docs/java/79.md
docs/java/79.md
+10
-7
docs/java/80.md
docs/java/80.md
+5
-3
未找到文件。
docs/java/76.md
浏览文件 @
4ebd19e0
...
...
@@ -4,7 +4,7 @@
学习将 Java 8 API 与
`Files.list()`
和
`DirectoryStream`
一起使用,以递归方式列出目录中存在的所有文件,包括隐藏文件。
## 1\. 使用
Files.list()
列出所有文件和子目录
## 1\. 使用
`Files.list()`
列出所有文件和子目录
`Files.list()`
方法列出当前目录中的
**所有文件名和子目录**
。
...
...
@@ -40,7 +40,7 @@ Files.list(Paths.get("."))
要列出其他目录中的文件,我们可以将
`"."`
替换为所需目录的完整路径。
## 3\. 使用
Files.newDirectoryStream()
列出文件和子目录
## 3\. 使用
`Files.newDirectoryStream()`
列出文件和子目录
Java 提供了一种更灵活的使用
`Files.newDirectoryStream()`
遍历目录内容的方式。
...
...
@@ -59,7 +59,7 @@ Files.newDirectoryStream(Paths.get("."))
```
## 4\.
仅列出具有 Files.newDirectoryStream()的
文件
## 4\.
使用`Files.newDirectoryStream()`仅列出
文件
要仅列出文件并从流中排除所有目录,请使用路径过滤器作为第二个参数。
...
...
@@ -75,7 +75,7 @@ Output:
```
## 5\. 使用
Files.newDirectoryStream()
列出一定范围的文件
## 5\. 使用
`Files.newDirectoryStream()`
列出一定范围的文件
您可以更改在第二个参数中传递的路径过滤器表达式,以仅获取具有特定扩展名的文件。
...
...
@@ -109,5 +109,6 @@ final File[] files = new File(".").listFiles(
参考文献:
[
DirectoryStream
](
https://docs.oracle.com/javase/8/docs/api/java/nio/file/DirectoryStream.html
)
[
Files.list()方法
](
https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#list-java.nio.file.Path-
)
\ No newline at end of file
[
`DirectoryStream`
](
https://docs.oracle.com/javase/8/docs/api/java/nio/file/DirectoryStream.html
)
[
`Files.list()`方法
](
https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#list-java.nio.file.Path-
)
\ No newline at end of file
docs/java/77.md
浏览文件 @
4ebd19e0
...
...
@@ -36,7 +36,7 @@ in mind.
## 2\. Java 8 读取文件 – 过滤行流
在此示例中,我们将文件内容读取为行流
as
。 然后,我们将过滤掉所有带有单词
`"password"`
的行。
在此示例中,我们将文件内容读取为行流。 然后,我们将过滤掉所有带有单词
`"password"`
的行。
```
java
Path
filePath
=
Paths
.
get
(
"c:/temp"
,
"data.txt"
);
...
...
@@ -67,7 +67,7 @@ password
我们将读取给定文件的内容,并检查是否有任何一行包含单词
`"password"`
,然后将其打印出来。
## 3\. Java 7 – 使用
FileReader
读取文件
## 3\. Java 7 – 使用
`FileReader`
读取文件
到 Java 7 为止,我们可以通过
[
`FileReader`
](
https://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html
)
以各种方式读取文件。
...
...
docs/java/78.md
浏览文件 @
4ebd19e0
...
...
@@ -4,9 +4,9 @@
Java 8 示例将内容导入文件。 您可以在链接的博客文章中找到使用 Java 8 API 读取文件的
[
示例。
](
//howtodoinjava.com/java8/read-file-line-by-line-in-java-8-streams-of-lines-example/
)
## 1\. Java 8 使用
BufferedWriter
写入文件
## 1\. Java 8 使用
`BufferedWriter`
写入文件
[
BufferedWriter
](
https://docs.oracle.com/javase/8/docs/api/java/io/BufferedWriter.html
)
用于将文本写入字符或字节流。 在打印字符之前,它将字符存储在缓冲区中并成束打印。 如果不进行缓冲,则每次调用 print()
方法都会导致将字符转换为字节,然后将这些字节立即写入文件中,这可能会非常低效。
[
`BufferedWriter`
](
https://docs.oracle.com/javase/8/docs/api/java/io/BufferedWriter.html
)
用于将文本写入字符或字节流。 在打印字符之前,它将字符存储在缓冲区中并成束打印。 如果不进行缓冲,则每次调用
`print()`
方法都会导致将字符转换为字节,然后将这些字节立即写入文件中,这可能会非常低效。
Java 程序
*使用 Java 8*
API 将内容写入文件:
...
...
@@ -22,9 +22,9 @@ try (BufferedWriter writer = Files.newBufferedWriter(path))
```
## 2\. 使用
Files.write()
写入文件
## 2\. 使用
`Files.write()`
写入文件
使用
[
Files.write()
](
https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#write-java.nio.file.Path-byte:A-java.nio.file.OpenOption...-
)
方法也是非常干净的代码。
使用
[
`Files.write()`
](
https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#write-java.nio.file.Path-byte:A-java.nio.file.OpenOption...-
)
方法也是非常干净的代码。
```
java
String
content
=
"Hello World !!"
;
...
...
docs/java/79.md
浏览文件 @
4ebd19e0
...
...
@@ -4,7 +4,7 @@
在此示例中,我们将学习使用 Java 8
`WatchService`
API 观察目录及其中的所有子目录和文件。
## 如何注册 Java 8
WatchService
## 如何注册 Java 8
`WatchService`
要注册
`WatchService`
,请获取目录路径并使用
`path.register()`
方法。
...
...
@@ -33,11 +33,11 @@ while (true) {
该密钥一直有效,直到:
*
通过调用其
cancel
方法显式地取消它,或者
*
通过调用其
`cancel`
方法显式地取消它,或者
*
隐式取消,因为该对象不再可访问,或者
*
通过关闭
手表
服务。
*
通过关闭
观察
服务。
如果您要重复使用同一键在一个循环中多次获取更改事件,请不要忘记调用
`watchKey.reset()`
方法,该方法会将键再次设置为
**
处于
**
状态。
如果您要重复使用同一键在一个循环中多次获取更改事件,请不要忘记调用
`watchKey.reset()`
方法,该方法会将键再次设置为
**
就绪
**
状态。
> 请注意,诸如如何检测事件,其及时性以及是否保留其顺序之类的几件事高度依赖于底层操作系统。 某些更改可能导致一个操作系统中的单个条目,而类似的更改可能导致另一操作系统中的多个事件。
...
...
@@ -72,7 +72,7 @@ private void walkAndRegisterDirectories(final Path start) throws IOException {
```
请注意,无论何时创建新目录,我们都会在
watchservice
中注册该目录,并将新密钥添加到映射中。
请注意,无论何时创建新目录,我们都会在
观察服务
中注册该目录,并将新密钥添加到映射中。
```
java
WatchEvent
.
Kind
kind
=
event
.
kind
();
...
...
@@ -230,13 +230,16 @@ ENTRY_MODIFY: c:\temp\data\tempFile.txt
ENTRY_MODIFY:
c:
\
temp
\
data
\
tempFile
.
txt
```
这就是使用 Java 8
WatchService
API 监视文件更改并进行处理的简单示例。
这就是使用 Java 8
`WatchService`
API 监视文件更改并进行处理的简单示例。
学习愉快!
资源:
[
WatchService Java 文档
](
https://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html
)
[
`WatchService` Java 文档
](
https://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html
)
[
遍历文件树
](
https://docs.oracle.com/javase/tutorial/essential/io/walk.html
)
[
Java 8 路径
](
https://docs.oracle.com/javase/8/docs/api/java/nio/file/Paths.html
)
[
Lambda 表达式
](
https://en.wikipedia.org/wiki/Lambda
)
\ No newline at end of file
docs/java/80.md
浏览文件 @
4ebd19e0
...
...
@@ -45,6 +45,8 @@ System.out.println(anotherDate + " parses as " + random);
参考文献:
[
DateTimeFormatter
](
https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
)
[
LocalDateTime
](
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
)
[
LocalDate
](
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html
)
\ No newline at end of file
[
`DateTimeFormatter`
](
https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
)
[
`LocalDateTime`
](
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
)
[
`LocalDate`
](
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录