0

テストの実行に必要なファイルがあります。このファイルは、テストを実行している人がパーソナライズする必要があります(名前とパスワード)。このファイルをEclipseに保存したくないので(テストを実行する人が変更する必要があるため、個人情報もリポジトリに保存するため)、ホームフォルダー(/ home / conrad /)に保存します。 ssl.properties)。プログラムでこのファイルを指定するにはどうすればよいですか?

私はもう試した:

InputStream sslConfigStream = MyClass.class
    .getClassLoader()
    .getResourceAsStream("/home/" + name + "/ssl.properties");

私も試しました:

MyClass.class.getClassLoader();
InputStream sslConfigStream = ClassLoader
    .getSystemResourceAsStream("/home/" + name + "/ssl.properties");

sslConfigStreamはnullであるため、これらは両方ともRuntimeExceptionを発生させます。どんな助けでも大歓迎です!

4

5 に答える 5

3

を使用しFileInputStreamて、ファイルからデータを読み取ります。コンストラクターは、文字列パス(または文字File列パスをカプセル化するオブジェクト)を取ります。

注1: 「リソース」は、(java / classファイルと一緒に)クラスパスにあるファイルです。リポジトリにファイルを保存したくないので、ファイルをリソースとして保存したくないので、それはあなたClassLoader.getSystemResourceAsStream()が望むものではありません。

注2: 次のように、ホームディレクトリにファイルを取得するクロスプラットフォームの方法を使用する必要があります。

File homeDir = new File(System.getProperty("user.home"));
File propertiesFile = new File(homeDir, "ssl.properties");
于 2013-03-22T21:27:37.070 に答える
0

InputStream sslConfigStream = new FileInputStream( "/ home /" + name + "/ssl.properties")

于 2013-03-22T21:29:40.393 に答える
0

Javaの7つの方法を使用して、作業を簡素化できます。

public static void main(String[] args) {
    String fileName = "/path/to/your/file/ssl.properties";

    try {
        List<String> lines = Files.readAllLines(Paths.get(fileName),
                Charset.defaultCharset());
        for (String line : lines) {
            System.out.println(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

また、Propertiesクラスを使用して、プロパティファイルの読み取り方法を改善し、.propertiesファイルの読み取りと解析を忘れることもできます。

http://www.mkyong.com/java/java-properties-file-examples/

于 2013-03-22T21:30:43.827 に答える
0

これはグラフィックプログラムですか(つまり、Swingライブラリを使用していますか)?もしそうなら、それはJFileChooserを使用する非常に簡単なタスクです。

http://docs.oracle.com/javase/6/docs/api/javax/swing/JFileChooser.html

JFileChooser f = new JFileChooser();

int rval = f.showOpenDialog(this);

if (rval == JFileChooser.APPROVE_OPTION) {
    // Do something with file called f
}
于 2013-03-22T21:31:45.697 に答える
0

スキャナーを使用してファイルを読み取ることもできます。

String fileContent = "";
try {
  Scanner scan = new Scanner(
      new File( System.getProperty("user.home")+"/ssl.properties" ));
  while(scan.hasNextLine()) {
    fileContent += scan.nextLine();
  }
  scan.close();
} catch(FileNotFoundException e) {
}
于 2013-03-22T21:37:07.600 に答える