Bayram, şehir dışı seyahatler , iş yoğunluğu derken uzun zamandır yazamıyordum.  Bu gün sizlere Java ile Dosya işlemleri nasıl yapıldığını paylaşacağım.  Bir aksilik olmazsa eğer[uyku/yorgunluk.. vs :)  ] 1-2  yazı daha yazıp proje/kaynak dosyalarıyla birlikte paylaşıyor olacağım.
Aslında her işlem de olduğu gibi dosya operasyonlarını da Javada birden fazla yöntemlerle yapabilirsiniz ancak ben burada en  bilinen yöntem olan BufferedWriter ve BufferedReader ile dosya  işlemleri yapacağım.
Öncelikle intelliJ aracılığıyla bir consol projesi oluşturalım(Web projesi oluşturarak ta aynı işlemleri yapabilirsiniz). 
Projenin yapısı(Son hali) aşağıdaki gibi olacaktır.
Dosya  işlemleri için Service paketinin altında Operations.java adında bir sınıf oluşturuyoruz.
Bu sınıfın içinde aşağıdaki isimlerde 3 tane metot olacak. 
public static void writeFile(String content) // dosya yazar  
public static void appendFile(String content) // dosyaya içerik ekler(Eski verileri silmeden) 
public static void readFile(String path) // dosyadan okur 
 | 
 
Operations.java / writeFile
    public static void
  writeFile(String content) { 
        File file = new
  File("write-file.txt"); 
        //if file doesn't
  exists , then create it 
        if (!file.exists()) 
            try { 
               
  file.createNewFile(); 
            } catch (Exception
  e) { 
               
  e.printStackTrace(); 
            } 
        try { 
            FileWriter fw = new
  FileWriter(file.getAbsoluteFile()); 
            BufferedWriter bw =
  new BufferedWriter(fw); 
            bw.write(content); 
            bw.close(); 
           
  System.out.println("SUCCESS.."); 
        } catch (Exception e) { 
           
  e.printStackTrace(); 
        } 
    } 
 | 
 
Yukarıdaki metot dosyaya yazmak istediğiniz her içeriği işlerken, mevcut dosya içeriğini temizler/ezer(override). Eğer dosyadaki var olan içeriğe dokunmadan en alta satır eklemek istiyorsanız yapmanız gereken tek işlem var oda FileWriter'a true değerine sahip ikinci bir parametre göndermek. Bu sayede FileWriter sınıfındaki override işlemi disable olur. Girdiğiniz içerikler ardı ardına eklenir.
Operations.java / appendFile
            FileWriter fw = new
  FileWriter(file.getAbsoluteFile(), true); 
 | 
Operations.java / readFile
    public static void
  readFile(String path) { 
        BufferedReader br =
  null; 
        String sCurrentLine; 
        String filePath = path; 
        try { 
            br = new
  BufferedReader(new FileReader(filePath)); 
            while
  ((sCurrentLine = br.readLine()) != null) { 
                System.out.println("READ
  ::::: " + sCurrentLine); 
            } 
        } catch (Exception e) { 
           
  e.printStackTrace(); 
        } finally { 
            try { 
                br.close(); 
            } catch (Exception
  e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
 | 
 
Run.java sınıfındaki main metodu çalıştırarak console ekranından işlemlerin sonucunu görebilirsiniz.
controller/Run.java
    public static void main(String[] args) { 
        System.out.println("RUNING.."); 
        //call writer class 
        Operations op = new Operations(); 
        Long currDate = System.currentTimeMillis(); 
        Date date = new Date(currDate); 
        String timeStr = date.toString(); 
        //content to file  + system time 
        String content1 = "ilk satiri dosyaya yaz " + timeStr + "\n"; 
        String content2 = "ikinci satiri dosyaya yaz " + timeStr + "\n"; 
        String content3 = "Ucuncu  satiri dosyaya yaz " + timeStr + "\n"; 
        //write to file 
        op.writeFile(content1); 
        op.writeFile(content2); 
        op.writeFile(content3); 
        //append to file 
        op.appendFile(content1); 
        op.appendFile(content2); 
        op.appendFile(content3); 
        //read file 
        op.readFile("C:\\read-file.txt"); 
    } 
 | 
NOT2: Özel karakterlerin string'e dönüştürebilmesi için dosya path inde ki slash ları iki kere yazın C:\read-file.txt yi C:\\read-file.txt şeklinde
Hiç yorum yok:
Yorum Gönder