public class DataSource extends Object
这种关联和延迟打开在不同情况下非常有用:
爬取
目录树以选择由DataLoader
加载的数据时,对于加载器无意义的文件可以被忽略并且根本不被打开数据过滤
时,原始流只有在上层过滤流打开时才能被过滤器打开try with resources
子句将打开和关闭操作分组,以便即使出现异常也可以正确关闭LexicalAnalyzerSelector
中),那么可以打开、缓冲和倒带流,并使用一个虚假的打开方法返回已经打开的流,以便在其他地方使用try with resources
子句正确关闭流请注意,此类的目的仅是延迟此打开(或根本不打开流或读取器),它不打算多次打开流,也不打算同时打开二进制流和字符读取器。如果多次调用或分别调用opener
的openStreamOnce
或openReaderOnce
方法,某些实现可能会失败。对于基于网络的流,这一点尤为重要。
DataFilter
Modifier and Type | Class and Description |
---|---|
static interface |
DataSource.Opener
用于一次性延迟打开数据流的接口。
|
static interface |
DataSource.ReaderOpener
用于一次性延迟打开字符流的接口。
|
static interface |
DataSource.StreamOpener
用于一次性延迟打开二进制流的接口。
|
Constructor and Description |
---|
DataSource(File file)
从本地文件系统上的文件构建一个实例。
|
DataSource(String fileName)
仅从文件名构建一个实例。
|
DataSource(String name, DataSource.ReaderOpener readerOpener)
完整构造函数。
|
DataSource(String name, DataSource.StreamOpener streamOpener)
完整构造函数。
|
DataSource(URI uri)
仅从URI构建一个实例。
|
Modifier and Type | Method and Description |
---|---|
String |
getName()
获取数据的名称。
|
DataSource.Opener |
getOpener()
获取数据流打开器。
|
public DataSource(String name, DataSource.StreamOpener streamOpener)
name
- 数据名称
streamOpener
- 数据流的打开器
public DataSource(String name, DataSource.ReaderOpener readerOpener)
name
- 数据名称
readerOpener
- 字符读取器的打开器
public DataSource(String fileName)
fileName
- 文件名
public DataSource(File file)
file
- 文件
public DataSource(URI uri)
uri
- 文件的URI
public String getName()
public DataSource.Opener getOpener()
Copyright © 2002-2023 CS GROUP. All rights reserved.