enter image description here我正在尝试使用一个文本文件来读取处于eclipse中的文件,但无法找到我放入eclipse中的文本文件。
import java.util.Scanner;
import java.io.*;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner (System.in);
BagBase bb = new BagBase();
System.out.println("Please enter items into the bag: ");
try {
start();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
public static void start() throws FileNotFoundException {
BagBase bb = new BagBase();
Scanner sc = new Scanner (System.in);
String wow;
File f = new File("C:/Users/sruja/workspace/Prjocet1/src/ListForBag.txt");
Scanner aa = new Scanner (f);
wow=aa.nextLine();
bb.inserItem(wow);
}
}
感谢您的帮助。 我不确定为什么在我放入同一项目时找不到此链接
答案 0 :(得分:0)
“文件在Eclipse中”是什么意思? 它在资源文件夹中吗?您的项目的结构是什么?
如果您具有以下结构:
MyProject/src/main/java/analysis/ResourceReader.java
MyProject/src/main/resources/text.txt
然后,您可以使用以下功能访问text.txt文件(将文件名作为参数传递给此功能):
private static Reader getReaderFromResource(String resourceName) {
URL resource = ResourceReader.class.getClassLoader().getResource(resourceName);
URL url = Objects.requireNonNull(resource);
String decodedStr = URLDecoder.decode(url.getFile(), "UTF-8");
return new FileReader(new File(decodedStr));
}
然后,您可以将BufferedReader构造函数填充到通过执行此方法获得的实例中(记住要处理异常!),并最终逐行读取文件。
好吧,在看完您要做什么之后,我将继续进行以下操作:
创建一个项目(最好是一个maven项目),以使您的结构类似于我已经描述的结构。最好的做法是将资源放在项目的单独文件夹中,而不要在磁盘上的某个位置拆分。
此代码需要进行一些重构,但是为了简单起见,我在此答案中不作介绍。
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
BagBase bb = new BagBase();
System.out.println("Please enter items into the bag: ");
try {
start();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void start() throws FileNotFoundException {
BagBase bb = new BagBase();
Scanner sc = new Scanner(System.in);
String wow;
List<String> dataFromFile = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(getReaderFromResource("shoppingList"))) {
String currentLine = null;
while ((currentLine = reader.readLine()) != null) {
System.out.println(currentLine); // prints content of a file, just for the record
dataFromFile.add(currentLine);
}
bb.setBag(dataFromFile);
} catch (Exception e) {
e.printStackTrace();
}
}
private static Reader getReaderFromResource(String resourceName) throws FileNotFoundException, UnsupportedEncodingException {
URL resource = test.class.getClassLoader().getResource(resourceName);
URL url = Objects.requireNonNull(resource);
String decodedStr = URLDecoder.decode(url.getFile(), "UTF-8");
return new FileReader(new File(decodedStr));
}
}