私はJavaプログラムを書いています-具体的にはBukkitプラグインですが、それは質問とは何の関係もありません-そして、NullPointerExceptionが発生していることがわからない理由があります。以下は、エラーが発生しているコードの抜粋です。getPath()
十分にテストされ、正しいディレクトリが生成されます-つまり、構成ファイルがあるべきディレクトリです。構成ファイルが作成され、書き込まれているはずです。私が持っているテスター ファイルは正常に作成されており、構成ファイルも正常に作成されています。
File config = new File(getPath("config"));
BufferedReader in = new BufferedReader(new FileReader(config));
skipLines(11, in);
if(in.readLine().equalsIgnoreCase("true")) { //Exception is here
System.out.println("Successfully wrote to config file");
}
else {
System.out.println("Failed to write text correctly to config file");
}
in.close();
全体が try/catch ステートメントで囲まれています。
さらに情報が必要な場合は、お尋ねください。喜んで提供させていただきます。
注: ファイルは問題なく動作しています。手動で確認すると、ファイルに書き込みがあります。それが問題が存在する理由です。
ファイルに書き込むコードは次のとおりです。
File exConfig = new File(System.getProperty("user.dir") + File.separator + "configExample");
PrintWriter out = new PrintWriter(new FileWriter(config));
BufferedReader in = new BufferedReader(new FileReader(exConfig));
for(int i = 1; i <= configLength; i++) {
out.println(in.readLine());
}
out.flush();
out.close();
System.out.println("Successfully wrote defaults to config");
configLength
config の行数に等しい変数です。私はそれをテストしましたが、動作します。そこに変なところがあるかもしれません。「configExample」というファイルは次のとおりです。
########################################
# hPlugin is written by newbiedoodle #
########################################
# ----- Plugin config file ----- #
########################################
hPlugin
v.0.3
NOTE: Do not edit the config file besides changing the values - it may result in errors.
--------------
Enable hPlugin?
true
Strikes before being banned?
3
Godmode?
true
First time running the plugin?
true
Curse protection?
true
Emergency shelter?
true
Path building?
true
Blocked words/phrases (Separate with colon (:)):
shit:fuck:damn:bitch:hell
ご覧のとおり、これは 11 行を超える必要があります... 11 行目が「true」でない場合でも、エラーは発生しません。
まあ、少し浮気した後、私はそれを機能させました...結局のところ、関数には、渡そうとしていた変数に設定するのではなく、ハードコードされたファイル名があったため、変数が台無しになりました。でも、助けてくれてありがとう!