2012-04-19 11 views
2

自分のプログラムが実行時に必要とするシステム情報を保持するために使用しているファイルがあります。 プログラムはそれを読み込んで定期的に書き込みます。これはどうすればいいですか?見てみましょう実行可能なjarファイルとしてJava内部プロパティファイルを読み書きするにはどうすればよいですか?

+0

実行可能なjarは古典的なコマンドラインプログラムですか? – yorkw

+0

@yorkwはい、そうです。 – stackoverflow

答えて

2

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

Preferences APIと考えられますか?あなたはプロパティからブール値を読みたい場合など

boolean Example = diskReader.nextBoolean(); 

使用を提出この後

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

としてスキャナを使用してファイルリーダーを宣言することができ、ファイルからの読み込みに

8

をアプリケーションをデプロイする場合は、他の問題の中で、私はこれに読み取り/書き込みするにはどうすればよいのパス

enter image description here

とのトラブルを抱えていると、ファイルをproperites http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html

プロパティ/設定ファイルでこのクラスを使用して、キー=値のペアを使用できます

質問の2番目の部分、実行可能な瓶を構築する方法。私はあなたが完全にあなたのプロジェクトをビルドする

をMavenを使用していない参照

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

How can I create an executable JAR with dependencies using Maven?

と、この:私はMavenので、これを見てみることをやるだろう

0

ファイルに書き込むことができない場合は、もう少し複雑ですが、これは私のやり方です:

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"); 
+1

これは良いコードではありません。 BufferedWriterのインスタンス化に問題があり、 'writer'がnullの場合、NullPointerExceptionがスローされます。 –

関連する問題