Bu kod önce dizinin varlığını kontrol eder ve değilse onu oluşturur ve daha sonra dosyayı oluşturur. Lütfen tam kodunuz olmadığından bazı yöntem çağrılarınızı doğrulayamadığımı unutmayın, bu nedenle bu gibi şeylere yapılan çağrıları getTimeStamp()
ve getClassName()
işe yarayacağını varsayıyorum . Ayrıca IOException
, java.io.*
sınıflardan herhangi birini kullanırken fırlatılabilecek olasılıkla bir şeyler yapmalısınız - dosyaları yazan işleviniz bu istisnayı atmalı (ve başka bir yerde ele alınmalıdır) ya da bunu doğrudan yöntemde yapmalısınız. Ayrıca, bunun id
bir tür olduğunu varsaydım String
- kodunuz açıkça tanımlamadığından bilmiyorum. An gibi başka bir şeyse, benim burada yaptığım gibi fileName içinde kullanmadan önce int
muhtemelen onu bir a String
çevirmelisiniz.
Ayrıca, append
aramalarınızı uygun gördüğüm şekilde concat
veya ile değiştirdim +
.
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();
}
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);
}
}
Kodu Microsoft Windows'ta çalıştırmak istiyorsanız muhtemelen bu gibi çıplak yol adlarını kullanmamalısınız - /
dosya adlarında bunun ne işe yarayacağından emin değilim . Tam taşınabilirlik için, yollarınızı oluşturmak için muhtemelen File.separator gibi bir şey kullanmalısınız .
Düzenleme : Aşağıdaki JosefScript tarafından yapılan bir yoruma göre , dizin varlığını test etmek gerekli değildir. directory.mkdir()
Çağrı dönecektir true
bir dizin oluşturduk ve eğer false
dizin zaten var olan durumda da dahil olmak üzere, bu yaptığı değilse.