web-dev-qa-db-ja.com

Java-指定し​​たディレクトリにファイルを書き込む方法

ファイルresults.txtをマシンの特定のディレクトリ(正確にはZ:\ results)に書き込みたい。 BufferedWriter/FileWriterにディレクトリを指定するにはどうすればよいですか?

現在、ファイルは正常に書き込まれていますが、ソースコードがあるディレクトリに書き込まれています。ありがとう

    public void writefile(){

    try{
        Writer output = null;
        File file = new File("results.txt");
        output = new BufferedWriter(new FileWriter(file));

        for(int i=0; i<100; i++){
           //CODE TO FETCH RESULTS AND WRITE FILE
        }

        output.close();
        System.out.println("File has been written");

    }catch(Exception e){
        System.out.println("Could not create file");
    }
}
28
user726219

つかいます:

File file = new File("Z:\\results\\results.txt");

バックスラッシュ文字自体がJavaリテラル文字列のエスケープであるため、Windowsのバックスラッシュを2倍にする必要があります。

[〜#〜] posix [〜#〜] Linuxなどのシステムの場合、スラッシュを2倍にせずにデフォルトのファイルパスを使用します。これは、スラッシュがJavaのエスケープ文字ではないためです。

File file = new File("/home/userName/Documents/results.txt");
27
Greg Hewgill

シンボリックに作成されるディレクトリを指定するには、Fileセカンダリコンストラクター を使用する必要があります。ディレクトリ名を元の名前の前に付けてファイルを作成するという回答は、この方法ほどシステムに依存しないため、これは重要です。

サンプルコード:

String dirName = /* something to pull specified dir from input */;

String fileName = "test.txt";
File dir = new File (dirName);
File actualFile = new File (dir, fileName);

/* rest is the same */

それが役に立てば幸い。

35
Kaushik Shankar

Fileオブジェクトに完全なディレクトリの場所を置くだけです。

File file = new File("z:\\results.txt");
4
Collin Price

ベストプラクティスは、パスでFile.separatorを使用することです。

2
TillTheDayIDie