これはおそらく非常に基本的な質問ですが、さまざまなオプションを試しましたが、うまくいかなかったため、助けを求めました。指定したディレクトリ内にファイルを作成したい。ファイルがすでに存在する場合は、データを追加したいと思います。以下は私が試したものです:
var DirectoryName: String = "LogFiles"
var dir: File = new File(DirectoryName);
dir.mkdir();
var ActorID: String = "1"
var FileName: String = DirectoryName + File.separator + "Actor_" + ActorID + ".log"
val FileObj: File = new File(FileName)
// FileObj.getParentFile().mkdirs();
// FileObj.createNewFile();
var FileWriterObj: FileWriter = null
var FileExistsFlag = 0
if (!FileObj.exists())
{
FileWriterObj = new FileWriter(FileObj.getName())
}
else
{
FileWriterObj = new FileWriter(FileObj.getName(), true)
FileExistsFlag = 1
}
var writer = new PrintWriter(FileWriterObj)
if(FileExistsFlag == 0)
writer.write("new file")
else
writer.append("appending to old file")
インターネット検索では、以下を使用するように求められます。
FileObj.getParentFile().mkdirs();
FileObj.createNewFile();
ただし、ディレクトリ内に空のファイルを作成し、ディレクトリ外に新しいファイルを作成して追加します。また、ファイルを作成するためにcreateNewFile()を使用する必要がないことを示唆する投稿もいくつかあります。
以下のようなさまざまなパス形式を試してみました。
var DirectoryName: String = "../LogFiles"
var DirectoryName: String = "/home/ms/Desktop/Project/LogFiles"
ただし、それでもディレクトリ内にファイルは作成されません。私が欠けているものを教えていただけますか?
OS:Ubuntu 12.04