- 加载资源文件" level="1">加载资源文件
- 1. 概念" level="2"> 1. 概念
- 2. 从文本资源中加载" level="2"> 2. 从文本资源中加载
- <a name=”load-text-into-string> 2.1 将文本资源加载到字符串
- <a name=”load-text-into-string-list> 2.2 将文本资源加载到字符串列表
- 2.3 将文本资源加载到
Properties
结构" level="3"> 2.3 将文本资源加载到Properties
结构 - 2.4 加载文本到
Map
结构" level="3"> 2.4 加载文本到Map
结构 - 2.5 加载文本到
List
结构" level="3"> 2.5 加载文本到List
结构 - 2.6 加载 JSON 资源" level="3"> 2.6 加载 JSON 资源
- 2.7 加载 YAML 资源" level="3"> 2.7 加载 YAML 资源
- 3. 从二进制资源中加载" level="2"> 3. 从二进制资源中加载
加载资源文件" class="reference-link">加载资源文件
1. 概念" class="reference-link"> 1. 概念
public class Foo {
@LoadResource("name.list")
private List<String> nameList;
}
上面的代码指令 ActFramework 将 resources/name.list
文件读取到 List<String> nameList
中, 每一行读取为 nameList
列表中的一个元素.
2. 从文本资源中加载" class="reference-link"> 2. 从文本资源中加载
ActFramework 支持从文本资源中加载到以下数据结构:
- 字符串
- 字符串列表 (每一行加载为列表中的一个元素)
Properties
- 从.properties
文件资源中加载Map
- 从类.properties
文件资源中加载List
- 任意类型 - 从 JSON 或者 yaml 文件中加载
<a name=”load-text-into-string> 2.1 将文本资源加载到字符串
任何类型文本资源都可以加载到字符串:
// snippet s2.1
@LoadResource("myfile.txt")
private String myStr;
<a name=”load-text-into-string-list> 2.2 将文本资源加载到字符串列表
任何类型文本资源都可以加载到 List<String>
数据结构, 该资源的每一行加载为字符串列表中的一个元素:
// snippet s2.2
@LoadResource("myfile.txt")
private List<String> myLines;
2.3 将文本资源加载到 Properties
结构" class="reference-link"> 2.3 将文本资源加载到 Properties
结构
后缀名为 “.properties” 的资源文件可以加载进 Properties
类型数据中:
// snippet s2.3
@LoadResource("foo.properties")
private Properties foo;
2.4 加载文本到 Map
结构" class="reference-link"> 2.4 加载文本到 Map
结构
任何类似 properties 文件内容的文本 (包括 .properties 文件) 都可以加载进 Map
类型数据:
// snippet s2.4a
@LoadResource("foo.properties")
private Map<String, Object> foo;
如果文本中的值是特定类型, 你可以声明为该类型. 假设你的文本文件 int_values.txt
内容如下:
# s2.4b
one=1
two=2
你可以使用下面的方式类声明 Map
类型参数:
// snippet s2.4c
@LoadResource("int_values.txt")
private Map<String, Integer> intValues;
2.5 加载文本到 List
结构" class="reference-link"> 2.5 加载文本到 List
结构
在文本中每一行都可以转换为某个特定类型的情况下,可以将文本加载到非字符类型的 List
结构中, 例如资源文本为:
1
2
3
4
5
可以加载到 List<Integer>
中:
@LoadResource("int.list")
private List<Integer> intList;
2.6 加载 JSON 资源" class="reference-link"> 2.6 加载 JSON 资源
JSON 资源内容可以加载到任何符合文件内容结构的数据中:
resource file: chracters.json
// snippet s2.6a
[
{
"username": "jamesbond",
"level": 32
},
{
"username": "ethanhunt",
"level": 30
},
{
"username": "jasonbourne",
"level": 29
}
]
The java POJO class
// snippet s2.6b
@Data
public class Character implements SimpleBean {
public String username;
public int level;
}
Load the characters into a list of Character
s
// snippet s2.6c
@LoadResource("characters.json")
private List<Character> characters;
2.7 加载 YAML 资源" class="reference-link"> 2.7 加载 YAML 资源
和 JSON 资源相似, YAML 资源也可以加载到任何符合文件内容结构的数据中:
resource file: chracters.yml
# snippet s2.7a
- username: jamesbond
level: 32
- username: ethanhunt
level: 30
- username: jasonbourne
level: 29
The java POJO class
// snippet s2.7b
@Data
public class Character implements SimpleBean {
public String username;
public int level;
}
Load the characters into a list of Character
s
// snippet s2.7c
@LoadResource("characters.yml")
private List<Character> characters;
3. 从二进制资源中加载" class="reference-link"> 3. 从二进制资源中加载
ActFramework 支持从任何资源(包括二进制资源)中加载到以下数据结构:
byte[]
java.nio.ByteBuffer
java.nio.file.Path
java.net.URL
java.io.File
java.io.InputStream
java.io.Reader
org.osgl.storage.ISObject
// snippet s3a
@LoadResource("myFile.pdf")
private ISObject myStorageObject;
@LoadResource("myFile.pdf")
private File myFile;
@LoadResource("myFile.pdf")
private byte[] myFileBlob