2016-07-11 7 views
0

データベースから動的パスを取得します。例:1.xyz/abc/file1.txt 2.pqr/FILE2.TXTJavaで動的パスを作成し、Javaでファイルデータを書き込む方法

今、私は、既存のファイル(例:/ユーザー/ラマ/)にこれらのパスを追加する必要があり

をし、そのファイルを保存します最終的なディレクトリは/users/rama/xyz/abc/file1.txtのようになります

xyz/abcのようなディレクトリは存在しないが作成できますが、file1.txtも次のように作成されますディレクトリではなくファイルです。

+0

この問題を解決するにはどうすればよいですか。何を試しましたか?これは宿題の質問ですか? –

答えて

0

彼らは、 を存在しない場合、私は、このようなXYZ/ABCなどのディレクトリを作成することができていますが、問題は代わり ファイルのディレクトリとして作成されFILE1.TXTです。

* .txtまでディレクトリを作成するためです。

String prefix = "https://stackoverflow.com/users/rama/"; 
String filePath = "xyz/abc/file1.txt"; 

// concatenation => /users/rama/xyz/abc/file1.txt 
String fullPath = prefix.concat(filePath); 

PrintWriter writer; 
try { 

    // Getting the directory path : /users/rama/xyz/abc/ 
    int lastIndexOfSlash = fullPath.lastIndexOf("/"); 
    String path = filePath.substring(0, lastIndexOfSlash); 

    File file = new File(path); 

    // If /users/rama/xyz/abc/ don't exist then creating it. 
    if(!file.exists()) { 
     file.mkdirs(); 
    } 

    // Creating the file. 
    writer = new PrintWriter(fullPath, "UTF-8"); 
    writer.println("content"); 
    writer.close(); 
} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (UnsupportedEncodingException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

あなたの解決策は正しいようですが、私はずっと簡単な解決策を見つけました。 file.getParentFile()。mkdirs()メソッドを使用できます。 – ramarvab

+0

これははるかに簡単です。 –

関連する問題