gpt4 book ai didi

java - java.io.FileNotFoundException 中访问被拒绝

转载 作者:行者123 更新时间:2023-11-30 07:22:54 25 4
gpt4 key购买 nike

我正在使用 Eclipse,如果有帮助的话。

我必须使用扫描仪访问java中的文件,并且我正在使用它们来生成对象。一些对象依赖于其他对象,程序应该为这些对象调用适当的“构建器”方法。

例如,我有一个 Effect类,由 Weapon 使用和Artifact类,由 Enemy 使用类(class)。

生成这些的方法称为 effectBuilder(String fileName) , weaponBuilder(String fileName)等等。除了enemyBuilder(String fileName)之外,这些方法都没有问题。方法,它给了我 java.io.FileNotFoundException: .\doc\Builders (Access is denied)错误。文件位置是我保存这些方法的文本文件的位置。

敌人构建器方法如下:

类(class):

public static Enemy buildEnemy(String fileName)
{
Scanner sc;

//creates Scanner, prints error and returns null if file is not found

try {
sc = new Scanner(new File("./doc/Builders/"+fileName));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}

//values are put into constructor at the end of the method.

String n = sc.nextLine();
int h = sc.nextInt();
int d = sc.nextInt();
int lo = sc.nextInt();
int hi = sc.nextInt();
String g = sc.nextLine();

ArrayList<Weapon> weps = new ArrayList<Weapon>();
while(!g.equals("a") && sc.hasNextLine()){
weps.add(Builder.buildWeapon(g));
g = sc.nextLine();
}

ArrayList<Artifact> facs = new ArrayList<Artifact>();
while(sc.hasNextLine()){
facs.add(Builder.buildArtifact(sc.nextLine()));
}

sc.close();

//converting for constructor purposes

Weapon[] warr = new Weapon[weps.size()];
int x = 0;
for(Weapon e : weps)
warr[x++] = e;

Artifact[] aarr = new Artifact[facs.size()];
x = 0;
for(Artifact e : facs)
aarr[x++] = e;

return new Enemy(n, h, d, lo, hi, warr, aarr);
}

其他builder方法对其他 builder 进行类似的调用方法来创建新对象,但这是唯一导致问题的方法。

作为引用,这里是正在使用的 txt 文件的示例(括号中的信息详细说明了数据应用于哪些变量):

Warrior (should be n)
12 (should be h)
10 (should be d)
15 (should be lo)
30 (should be hi)
battleaxe.txt (first instance of g in 1st loop)
longsword.txt (second instance)
a (signifies the computer to move to next while loop)
battlemedallion.txt (first instance of g in 2nd loop)
chestplate.txt (second instance)

这个问题有解决办法吗?

最佳答案

如果错误确实是这个:java.io.FileNotFoundException:.\doc\Builders(访问被拒绝)那么您似乎正在尝试打开一个目录,这意味着buildEnemy 未使用有效的文件名调用

关于java - java.io.FileNotFoundException 中访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37245716/

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