35

ファイル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");
    }
}
4

4 に答える 4

42

シンボリックに作成されるディレクトリを指定するには、のセカンダリコンストラクタを使用する必要があります。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 */

それが役に立てば幸い。

于 2011-04-26T22:30:11.353 に答える
33

使用する:

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

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

LinuxなどのPOSIXシステムの場合、スラッシュを2倍にすることなく、デフォルトのファイルパスを使用するだけです。これは、Javaではスラッシュがエスケープ文字ではないためです。

File file = new File("/home/userName/Documents/results.txt");
于 2011-04-26T22:28:57.000 に答える
4

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

File file = new File("z:\\results.txt");
于 2011-04-26T22:28:56.607 に答える
1

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

于 2019-02-05T09:09:51.197 に答える