2

プログラムの実行に必要なシステム情報を保持するために使用しているファイルがあります。プログラムはそれから読み取り、定期的に書き込みます。どうすればよいですか?他の問題の中で、私はパスに問題があります

ここに画像の説明を入力してください

アプリケーションを実行可能なjarとしてデプロイする場合、このプロパティファイルの読み取り/書き込みを行うにはどうすればよいですか?

4

3 に答える 3

8

http://docs.oracle.com/javase/6/docs/api/java/util/Properties.htmlをご覧ください

このクラスを利用して、property/configファイルのkey=valueペアを使用できます

質問の2番目の部分は、実行可能なjarを作成する方法です。私はMavenでそれを行います、これを見てください:

Mavenを使用して依存関係のある実行可能JARを作成するにはどうすればよいですか?

この :

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

プロジェクトのビルドにMavenを使用していないようです

于 2012-04-19T21:00:12.953 に答える
2

ZIPファイルの一部として存在するファイルに書き込むことはできません...ファイルシステムにファイルとして存在しません。

Preferences APIを検討しましたか?

于 2012-04-19T21:24:41.737 に答える
0

ファイルから読み取るには、スキャナーを使用してファイルリーダーを次のように宣言できます。

Scanner diskReader = new Scanner(new File("myProp.properties"));

その後、たとえば、プロパティファイルからブール値を読み取りたい場合は、

boolean Example = diskReader.nextBoolean();

ファイルに書き込みたくない場合は少し複雑ですが、これが私のやり方です。

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;

public class UpdateAFile {

    static Random random = new Random();
    static int numberValue = random.nextInt(100);

    public static void main(String[] args) {
        File file = new File("myFile.txt");
        BufferedWriter writer = null;
        Scanner diskScanner = null;

        try {
            writer = new BufferedWriter(new FileWriter(file, true));
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            diskScanner = new Scanner(file);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }

        appendTo(writer, Integer.valueOf(numberValue).toString());
        int otherValue = diskScanner.nextInt();
        appendTo(writer, Integer.valueOf(otherValue + 10).toString());
        int yetAnotherValue = diskScanner.nextInt();
        appendTo(writer, Integer.valueOf(yetAnotherValue * 10).toString());

        try {
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    static void appendTo(BufferedWriter writer, String string) {
        try {
            writer.write(string);
            writer.newLine();
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

次に、次の方法でファイルに書き込みます。

diskWriter.write("BlahBlahBlah");
于 2012-08-05T17:46:15.763 に答える