java读取src目录下的文件2

项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
E:\dev2\idea_workspace\MyJavaTools\Commands
├─Commands.iml
├─META-INF\
│ └─MANIFEST.MF
├─resource\
└─src\
├─main\
│ └─Test.java
└─tools\
├─html\
│ ├─HtmlTools.java
│ └─toMdTable.html
└─string\
└─StringReplace.java

Test.java读取toMdTable.html文件内容

现在在Test.java中,读取toMdTable.html文件中的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Test {
public static void main(String[] args) {
html2MdTable();
}
public static void html2MdTable() {
Scanner scanner = new Scanner(Test.class.getResourceAsStream("/tools/html/toMdTable.html"));
//Scanner scanner = new Scanner(Test.class.getResourceAsStream("toMdTable.html"));
while(scanner.hasNextLine()){
System.out.println(scanner.nextLine());
}

}
}

这里获取toMdTable.html文件的输入流的方法为:

1
Test.class.getResourceAsStream("/tools/html/toMdTable.html")

路径为:

1
/tools/html/toMdTable.html

这个路径由,两部分组成:

  • 第一部分是 反斜杠/,反斜杠表示的是项目的路径。
  • 第二部分是 tools/html/toMdTable.html,这个路径是文件相对于src目录的路径

如果不加根路径,则会读取失败,也就是说如下的写法是错误的。

1
Test.class.getResourceAsStream("tools/html/toMdTable.html")

如果只写文件名,也是不能加载的,也就是如下写法是错误的:

1
Test.class.getResourceAsStream("toMdTable.html")

还有就是不要把文件放到src/main目录下,main目录下的文件是不能用这种方法来读取的