私は現在、Javaプログラミングの問題で水中で死んでいます。私はmain()
メソッドを含んでいないクラスの複数のメソッドからファイルにテキストを書き込もうとしていますが、このタイプの質問の他の回答とは異なります。Java:main()メソッドを持たないクラス内の複数のメソッドからファイルにテキストを書き込む
私のプログラムが現在行っていることの概要: 私のプログラムには、ディスクに保存されているテキストファイルを読み取る1つのクラス(明らかにmain()
メソッドあり)があり、渡されたテキストをテキストファイルに書き込むだけで、別のクラス(プロジェクトの2番目のファイル)のメソッドを呼び出すことができます。 main()
メソッドを持たないクラスの各メソッドは、渡された文字列をSAMEファイルに書き込む必要があります。
なぜ私は問題がありますか?私はとFileWriter
を使わずにクラスのONEメソッドからファイルに簡単にテキストを書き込むことができますが、他のすべてのメソッドを同じファイルに書き込むには、FileWriter
をグローバルにする必要があります。私はそれをグローバルにしようとしましたが、別のメソッドがテキストを保存した後にテキストを保存すると、書き込まれた最新のテキストにファイルが書き換えられます。 main()
方法なし
私の現在のクラスは:
package ADIFTOCSV;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class createADIF {
static File file;
static FileWriter fw;
static BufferedWriter writer;
static void init() throws IOException {
file = new File("/Users/Colin/Desktop/Myadif.txt");
fw = new FileWriter(file.getAbsoluteFile());
writer = new BufferedWriter(fw);
}
static void storeDate(String datez) throws IOException {
writer.write("<QSO_DATE:" + datez.length() + ">" + datez); <<----NULL POINTER EXCEPTION
}
static void storeFreq(String freqz) throws IOException {
writer.write("<FREQ:" + freqz.length() + ">" + freqz);
writer.close();
}
static void storeMode(String modez) {
}
static void storeBand(String bandz) {
}
static void storePower(String pwrz) {
}
static void storeTime(String timez) {
}
static void storeCall(String callz) {
}
static void storeRstSent(String rstsentz) {
}
static void storeRstRcvd(String rstrcvdz) {
}
static void storeComments(String commentsz) {
}
}
これらの方法の各々は、同じファイルに渡されたString
を書き込む必要があります。
storeDate()
が呼び出される最初のメソッドであるため、ファイルに最初にテキストを書き込みます。ただし、storeFreq()
が呼び出されると、storeDate()
によって書き込まれたテキストが完全にテキストに置き換えられます。テキストを書き込むためには、各メソッドで新しいFileWriterオブジェクトを作成しなければならないので、これは明らかです。私はそれをグローバルにするメソッドの外にFileWriter fw = new FileWriter(file.getAbsoluteFile());
を置くことはできません。エラーが発生する。
何か不足していますか?ヘルプは非常に感謝しています。何か疑問が生じた場合、または説明が必要な場合は、尋ねてください。
あなたの問題はあなたの心の中でのみ作成されます。プログラムを実行して、エラーが発生した場合は報告してください。 –
PrintWriterを実際に作成して使用する方法をコードで記述してください – Vampire
実際に試したコードを提示するのはどうですか? –