Java 如何从同一个包中加载txt文件

Java 如何从同一个包中加载txt文件,java,file-io,Java,File Io,我有一个包结构,比如com/tcs/孵化/sml/crawler/mediasources/twitterriver。 我有一个txt文件,我需要从这个包结构加载,即twitterriver 我可以通过添加src-like来访问该文件 src/com/tcs/cultation/sml/crawler/mediasources/twitterriverby BufferedReader objBufferedReader = new BufferedReader(new FileReader(f

我有一个包结构,比如
com/tcs/孵化/sml/crawler/mediasources/twitterriver
。 我有一个txt文件,我需要从这个包结构加载,即twitterriver

我可以通过添加src-like来访问该文件
src/com/tcs/cultation/sml/crawler/mediasources/twitterriver
by

BufferedReader objBufferedReader = new BufferedReader(new FileReader(filepath));
此文件路径将使用
.getAbsolutePath()
方法包含绝对路径


那么如何从
com/tcs/孵化器/sml/crawler/mediasources/twitterriver

加载我的txt文件如果该文件属于您程序的内部,只需使用
twitterriver.class.getResourceAstream()
获取输入流。

@saurabj是的,您需要将要读取的文件放在同一目录下。不要忘记将资源文件与类文件打包在一起。如果您的资源是某种静态配置文件,则调用
getResourceAsStream()
是合适的,只有在发布应用程序的新版本时才会更改。当我将代码与整个包InputStream InputStream=SMLTwitterRiverUtil.class.getClassLoader().getResourceAsStream(“com”)一起使用时/‌​‌​tcs/cultation/sml/crawler/mediasources/twitterriver/CrawlingRiverIndexQuery.tx‌​t“‌​)); 它工作正常,但当我只使用同一个包中的文件名时,比如–InputStream InputStream=(SMLTwitterRiverUtil.class.getClassLoader().getResourceAsStream(“CrawlingRiverIndexQuery.txt”);它会给出一个空指针exception@saurabhj使用
class.getClassLoader().getResourceAsStream(…)
搜索从根目录开始。如果您使用
SMLTwitterRiverUtil.class.getResourceAsStream(…)
您的文件需要与类源/编译类位于同一文件夹中。使用第一个变量的绝对路径是可以的,并且有文档记录的行为-如果这是您想要的。