gpt4 book ai didi

java - 找不到.txt文件的原因?

转载 作者:行者123 更新时间:2023-12-01 07:06:13 25 4
gpt4 key购买 nike

当我运行这个程序时,它找不到我指向的文件。我将这两个文本文件放入程序的 src 文件夹中,据我了解,调用它所需要做的就是 File f = new File("filename.txt")。但这是行不通的。我还尝试使用 File() 内部的确切目录,但它也不起作用。这些文件只包含一个名字和旁边的金额。有什么想法吗?

import java.io.*;
import java.util.Scanner;

class Donors {
File donor2;
File donor3;
Scanner inD2;
Scanner inD3;

Donors(File d2, File d3){
donor2 = d2;
donor3 = d3;
}

double totalDonations(){
double total = 0;
try{
inD2 = new Scanner(donor2);
while(inD2.hasNext()){
total += inD2.nextDouble();
}
}catch(java.io.FileNotFoundException e){
System.out.println("File can't be found");
}

try{
inD3 = new Scanner(donor3);
while(inD3.hasNext()){
total += inD3.nextDouble();
}
}catch(java.io.FileNotFoundException e){
System.out.println("File can't be found");
}

return total;
}

public void closeFile(){
inD2.close();
inD3.close();
}
}

public class DonorCalculations {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int userInput;
File donor2 = new File("H:\\CSC 191\\Assignment9\\src\\resources\\donor2.txt");
File donor3 = new File("donor3.txt");
Donors dObj = new Donors(donor2, donor3);

do{
System.out.println("SELECT");
System.out.println("1. Total money from donations");
System.out.println("2. Total donation from a individual");
System.out.println("0. Quit");

userInput = input.nextInt();
System.out.println();

switch(userInput){
case 1:
System.out.println(dObj.totalDonations());
break;
case 2:
System.out.println("Enter donor's name: ");
String name = input.next();
//dObj.donorTotal(name);
break;
case 0:
System.out.println("Goodbye!");
break;
}
System.out.println();
}while(userInput != 0);
}
}

最佳答案

您现在已将文件嵌入到应用程序中,使它们成为嵌入资源。您不能再像访问文件一样访问它们。

相反,您需要使用 Java 提供的资源查找功能,例如......

InputStream donor2 = getClass().getResourceAsStream("/resources/donor2.txt");

这可能是好事,也可能不是好事。

如果您必须从平面文件中读取内容,那么这些文件需要位于程序执行上下文的相对位置内。

您可以使用 System.out.println(System.getProperty("user.dir")); 确定当前程序的执行上下文,它将打印程序正在执行的当前目录。在开发时,您的文本文件应位于此目录的相对上下文中。

构建后,文件需要位于与执行程序相同的相对上下文中

关于java - 找不到.txt文件的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23377630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com