7 Temmuz 2020 Salı

FileUtils Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.io.FileUtils
byteCountToDisplaySize metodu
Verilen büyüklüğü okunabilir hale getirir. 29 bytes,45 KB gibi çıktı alırız.
Örnek
Şöyle yaparız.
File file= ...;
String str=FileUtils.byteCountToDisplaySize(file.length());
cleanDirectory metodu
Belirtilen dizini temizler. Dizini silmez.

copyDirectory metodu - source + destination
Bir dizini altındaki her şeyle beraber yeni dizine kopyalar.

Örnek
Şöyle yaparız.
FileUtils.copyDirectory(new File(SOURCE), new File(DESTINATION));
copyDirectory metodu - source + destination + FileFilter
Açıklaması şöyle
... this method provides a FileFilter filter with a filter: NameFileFilter. However, based on the documentation this would copy the file that matches the name in NameFileFilter instead of excluding it. Which is exactly the opposite of what I want.

copyFile metodu
Şöyle yaparız
File destFile = ...;
File sourceFile = ...;
FileUtils.copyFile(sourceFile, destFile);
copyFileToDirectory metodu
Şöyle yaparız.
File src = ...;
File dest = ...;
FileUtils.copyFileToDirectory(src, dest);
copyURLToFile metodu
Belirtilen URL'deki kaynağı dosyaya kaydeder.
Örnek
Şöyle yaparız.
String filePathToSave = "/data/provisioning/nexus_contents.json";
String url = "http://repository.obfuscated.com/nexus/url/to/json/file";

try {
    FileUtils.copyURLToFile(
      new URL(url),
      new File(filePathToSave),
      5000,
      5000);
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
Örnek
Şöyle yaparız
URL imgDir = ...;
File imgFile = new File("blank.txt");
try {
  FileUtils.copyURLToFile(imgDir, imgFile);
} catch (IOException e1) {
  ...
}
Örnek
Şöyle yaparız
URL website = new URL("http://user:password@nexus-repository/code/data/text.txt")
FileUtils.copyURLToFile(website, new File(directory), 10000, 10000);
deleteDirectory metodu
Dizinin içini ve alt dizinlerin tümünü silmek içindir. Exception fırlatabilir. şöyle yaparız.
FileUtils.deleteDirectory(new File("directory"));
deleteQuitely metodu
Dizinin içini ve alt dizinlerin tümünü silmek içindir. Exception fıraltmaz.
Örnek ver

forceMkdir metodu
Açıklaması şöyle. Bu metod yerine JDK içindeki Files.createDirectories() metodunu kullanmak daha iyi.
Makes a directory, including any necessary but nonexistent parent directories. If a file already exists with specified name but it is not a directory then an IOException is thrown. If the directory cannot be created (or does not already exist) then an IOException is thrown.
iterateFiles metodu
Şöyle yaparız.
Iterator<File> picFiles = FileUtils.iterateFiles(
     uploadFile.getParentFile(),  
     new WildcardFileFilter("*_fact_1.*"), 
     null
   );
lineIterator metodu
Şöyle yaparızz
LineIterator it = FileUtils.lineIterator(theFile, "UTF-8");
try {
  while (it.hasNext()) {
    String line = it.nextLine();
    // do something with line
  }
} finally {
  LineIterator.closeQuietly(it);
}
listFiles metodu
Sonuç olarak sadece dosyaları döndürür. Eğer üçüncü parametre yani directory filter null ise alt dizinleri dolaşmaz.

Örnek
Şöyle yaparız. Uzantısı .info olmayan tüm dosyaları alt dizinler de dahil olmak üzere döndürür.
FileFilter notInfoFilter = FileFilterUtils.notFileFilter(
  FileFilterUtils.suffixFileFilter(".info", IOCase.SYSTEM));

Collection<File> files = FileUtils.listFiles(
  new File(directoryName), notInfoFilter, TrueFileFilter.INSTANCE);
listFilesAndDirs metodu - rootFolder + file filter + directory filter
Sonuç olarak hem dosyaları hem de alt dizinleri döndürür. Başlangıç dizini sonuca dahil edilir. Eğer üçüncü parametre yani directory filter null ise alt dizinleri dolaşmaz.

Örnek
Başlangıç dizinin altındaki belli bir isim örüntüsüne sahip dizinleri bulmak için şöyle yaparız. Tek problem eğer bir dizin dikkate alınmazsa, es geçilen dizinin altına devam etmiyor.
IOFileFilter nameFilter = new WildcardFileFilter("*scenario*");
Collection<File> fileList = FileUtils.listFilesAndDirs(rootFolder, 
  FalseFileFilter.INSTANCE,
  nameFilter);
Örnek
Şöyle yaparız. Sadece başlangıç dizini altındaki alt dizinler verir.
Collection<File> dirs = FileUtils.listFilesAndDirs(pathFile,
  DirectoryFileFilter.DIRECTORY, null);
moveFileToDirectory metodu
Şöyle yaparız.
FileUtils.moveFileToDirectory(
      FileUtils.getFile("src/test/resources/fileToMove.txt"), 
      FileUtils.getFile("src/main/resources/"), true);
readFileToByteArray metodu
Şöyle yaparız.
File file = new File(pathFilename);
byte[] filedata = FileUtils.readFileToByteArray(file);
touch metodu
İmzası şöyle.
public static void touch(final File file) throws IOException;
Eğer dosya mevcutsa sadece dosyanın değiştirilme zamanını günceller. Dosya mevcut değilse önce üst dizinleri yaratır. Daha sonra boş bir dosya yaratır.

writeLines metodu
Şöyle yaparız
FileUtils.writeLines(file, collectionOfStrings);
writeStringToFile metodu
Örnek
Şöyle yaparız.
FileUtils.writeStringToFile(file, "line to append", "UTF-8", true);
Örnek
Şöyle yaparız.
FileUtils.writeStringToFile(file, "...", StandardCharsets.ISO_8859_1);


Hiç yorum yok:

Yorum Gönder