从特定包 Java 读取 txt 文件
我正在尝试读取特定包中的文本文件,但它返回了找不到的文本文件。我可以阅读它插入绝对路径,但我想在不插入绝对路径的情况下读取它。
String texto = "Utils/CEP/Cidades/" + estado + ".txt";
FileReader fr = new FileReader(texto);
BufferedReader in = new BufferedReader(fr);
我该怎么办?
谢谢
我正在尝试读取特定包中的文本文件,但它返回了找不到的文本文件。我可以阅读它插入绝对路径,但我想在不插入绝对路径的情况下读取它。
String texto = "Utils/CEP/Cidades/" + estado + ".txt";
FileReader fr = new FileReader(texto);
BufferedReader in = new BufferedReader(fr);
我该怎么办?
谢谢
您可以使用
InputStream in =
getClass().getResourceAsStream("/Utils/CEP/Ciades/" + estado + ".txt");
Reader fr = new InputStreamReader(in, "utf-8");
一些旁注:不要在包裹名称中使用大写字母;使用变量的英文名称。这些都是公认的做法和惯例。
可能有点晚了,但这可以帮助许多其他人。这些是访问项目中可用资源的方法
从默认包中获取资源
// Getting Resource as file object
File f = new File(getClass().getResource("/excludedir.properties").getFile());
// Getting resource as stream object
InputStream in = getClass().getResourceAsStream("/excludedir.properties");
从特定包中获取资源
// Getting Resource as file object
File f = new File(getClass().getResource("/com/vivek/core/excludedir.properties").getFile());
// Getting resource as stream object
InputStream in = getClass().getResourceAsStream("/com/vivek/core/excludedir.properties");
注意:getclass() 是一个非静态函数,不能从静态上下文中调用。如果要从静态上下文中调用,请使用
YourClassName.class.getResource("/com/vivek/core/excludedir.properties").getFile()
希望这有帮助。干杯!!