ファイル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");
}
}
つかいます:
File file = new File("Z:\\results\\results.txt");
バックスラッシュ文字自体がJavaリテラル文字列のエスケープであるため、Windowsのバックスラッシュを2倍にする必要があります。
[〜#〜] posix [〜#〜] Linuxなどのシステムの場合、スラッシュを2倍にせずにデフォルトのファイルパスを使用します。これは、スラッシュがJavaのエスケープ文字ではないためです。
File file = new File("/home/userName/Documents/results.txt");
シンボリックに作成されるディレクトリを指定するには、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 */
それが役に立てば幸い。
Fileオブジェクトに完全なディレクトリの場所を置くだけです。
File file = new File("z:\\results.txt");
ベストプラクティスは、パスでFile.separatorを使用することです。