Этот код сначала проверяет наличие каталога и создает его, если нет, а затем создает файл. Обратите внимание, что я не смог проверить некоторые из ваших вызовов методов, так как у меня нет вашего полного кода, поэтому я предполагаю, что вызовы таких вещей, как getTimeStamp()
и getClassName()
, будут работать. Вы также должны что-то сделать с возможным IOException
, которое может быть выброшено при использовании любого из классов java.io.*
- либо ваша функция, записывающая файлы, должна генерировать это исключение (и оно будет обрабатываться в другом месте), либо вы должны сделать это непосредственно в методе. Кроме того, я предположил, что id
имеет тип String
- я не знаю, так как ваш код не определяет его явно. Если это что-то вроде int
, вам, вероятно, следует преобразовать его в String
, прежде чем использовать его в имени файла, как я сделал здесь.
Кроме того, я заменил ваши звонки append
на concat
или +
по своему усмотрению.
public void writeFile(String value){
String PATH = "/remote/dir/server/";
String directoryName = PATH.concat(this.getClassName());
String fileName = id + getTimeStamp() + ".txt";
File directory = new File(directoryName);
if (! directory.exists()){
directory.mkdir();
// If you require it to make the entire directory path including parents,
// use directory.mkdirs(); here instead.
}
File file = new File(directoryName + "/" + fileName);
try{
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(value);
bw.close();
}
catch (IOException e){
e.printStackTrace();
System.exit(-1);
}
}
Вероятно, вам не следует использовать такие пустые имена путей, если вы хотите запустить код в Microsoft Windows — я не уверен, что он будет делать с /
в именах файлов. Для полной переносимости вам, вероятно, следует использовать что-то вроде File.separator для построения ваших путей.
Изменить: Согласно комментарию JosefScript ниже, нет необходимости проверять наличие каталога. Вызов directory.mkdir()
вернет true
, если он создал каталог, и false
, если нет, включая случай, когда каталог уже существует.
person
Aaron D
schedule
09.03.2015