Bazı durumlarda, Java’da geçici bir dosya oluşturmanız gerekebilir. Sonuçların depolanması gerekmediğinde, genellikle birim testler sırasında gerçekleşir. Test bittikten hemen sonra, dosyanın içeriği hakkında endişelenmenize gerek yoktur.
Burada, bu makalede, Java’da geçici dosyaların nasıl oluşturulacağını öğreneceğiz. Java File sınıfında createTempFile adında iki statik yöntem vardır; biri iki bağımsız değişken alır, diğeri üç bağımsız değişken alır. Varsayılan geçici klasör konumunda geçici bir dosya oluşturmamıza yardımcı olacaktır. Başka bir dosya, belirtilen klasör konumunda geçici dosya oluşturmak için kullanılır.
File.createTempFile(String prefix, String suffix) ile Geçici Dosya Oluşturma
Syntax
1 2 3 4 5 |
public static File createTempFile(String prefix, String suffix) throws IOException |
Bu, işletim sistemi geçici dizininde geçici bir dosya oluşturmanın kolay bir yoludur.
Bu yöntem, adını oluşturmak için verilen öneki ve soneki kullanarak varsayılan geçici dosya dizininde boş bir dosya oluşturur. Bu yöntemi çağırmak, createTempFile (önek, sonek, null) çağrılmasına eşdeğerdir.
Yeni oluşturulan boş bir dosyayı belirten soyut bir yol adı döndürür.
Bu yöntem aşağıdaki parametrelere sahiptir:
prefix – Dosyanın adını oluştururken kullanılacak önek dizesi; en az üç karakter uzunluğunda olmalıdır.
suffix – Dosyanın adını oluştururken kullanılacak sonek dizesi; null olabilir, bu durumda “.tmp” soneki kullanılır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import java.io.File; import java.io.IOException; public class JavaOrnekleri { public static void main(String[] args) { try { File tmpDosya = File.createTempFile("data", null); File yeniDosya = File.createTempFile("veri", ".temp", new File("C:\\Windows\\Temp")); System.out.println(tmpDosya.getCanonicalPath()); System.out.println(yeniDosya.getCanonicalPath()); // herhangi bir normal dosya gibi verileri geçici dosyaya yazma, okuma // uygulama sona erdiğinde sil tmpDosya.deleteOnExit(); yeniDosya.deleteOnExit(); } catch (IOException e) { e.printStackTrace(); } } } |
Yukarıdaki kod dosyası için çıktı:
C:\Users\H2O\AppData\Local\Temp\data1839954899271691712.tmp
C:\Windows\Temp\veri3926417396188981467.temp
File.createTempFile(String prefix, String suffix, File directory) kullanarak Dosya Adi ile Oluşturma
Bu yöntem, belirtilen geçici dosya dizininde, adını oluşturmak için sağlanan prefix(ön ek) ve suffix(son ek) kullanarak yeni bir boş dosya oluşturur.
Önek argümanı en az üç karakter uzunluğunda olmalıdır. Ön ekin “ffn” veya “posta” gibi kısa, anlamlı bir dize olması önerilir. Sonek argümanı null olabilir, bu durumda “.tmp” soneki kullanılır.
Yeni dosyayı oluşturmak için, önek ve sonek önce temeldeki platformun sınırlamalarına uyacak şekilde ayarlanabilir. Ön ek çok uzunsa, kesilir, ancak ilk üç karakteri her zaman korunur. Sonek çok uzunsa, o zaman da kesilir, ancak bir nokta karakteri (‘.’) İle başlarsa, nokta ve onu izleyen ilk üç karakter her zaman korunur. Bu ayarlamalar yapıldıktan sonra, önek, beş veya daha fazla dahili olarak oluşturulan karakter ve sonek birleştirilerek yeni dosyanın adı oluşturulur.
Bu yöntem aşağıdaki parametrelere sahiptir:
prefix – Dosyanın adını oluştururken kullanılacak önek dizesi; en az üç karakter uzunluğunda olmalıdır.
suffix – Dosyanın adını oluştururken kullanılacak sonek dizesi; null olabilir, bu durumda “.tmp” soneki kullanılır.
directory – Dosyanın oluşturulacağı dizin veya varsayılan geçici dosya dizini kullanılacaksa null.
Bu yöntem, son zamanlarda oluşturulan boş bir dosyayı gösteren soyut bir yol adı döndürür. Dosya oluşturulamadıysa bir IOException, önek bağımsız değişkeni üçten az karakter içeriyorsa bir IllegalArgumentException ve bir güvenlik yöneticisi varsa ve onun java.lang.SecurityManager.checkWrite (java.lang.String) yöntemi bir dosyanın oluşturulmasına izin vermez.
Şimdi, yukarıda belirtilen kullanım yöntemini görelim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.io.File; import java.io.IOException; public class JavaOrnekleri { public static void main(String[] args) { try { File tempFile = File.createTempFile("merhaba", ".tmp"); System.out.println("Temp Dosyasının kaydedildiği Lokasyon: " + tempFile.getAbsolutePath()); tempFile = File.createTempFile("merhaba", ".tmp", new File("D:/")); System.out.println("Geçici dosya Açık Belirtilen Konum: " + tempFile.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } } |
Program kaydedilip derlendiğinde aşağıdaki gibi bir çıktı oluşacaktır.
1 2 3 4 |
Temp Dosyasının kaydedildiği Lokasyon: C:\Users\H2O\AppData\Local\Temp\merhaba159018777738692539.tmp Geçici dosya Açık Belirtilen Konum: E:\merhaba5720735929161735983.tmp |
Yorum Yap