MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 6: Dosyadan Veri Okuma ve Yazma Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/Ders.aspx?dersId=101 1 Neden Dosya İşlemlerine İhtiyaç Duyulur? • Bilgisayar programları, zaman zaman çalışma aşamasındaki ortaya çıkan önemli bilgileri saklama ihtiyacı duyarlar. • Bunun sebebi bu saklanan bilgilerin bir sonraki çalışma esnasında yeniden görüntülenebilmesi ve kullanılabilmesidir. • Dosyalar, bilgisayar programlarının çıktılarını saklamak için kullandığı araçlardan birisidir. 2 Dosya İşlemleri import java.io.File; File dosya = new File(dosyaAdi); dosya.getAbsolutePath() dosya.getPath() dosya.getName() dosya.getParent() dosya.exists() dosya.canRead() dosya.canWrite() dosya.isDirectory() dosya.isFile() dosya.lastModified() dosya.length() 7‐3 Yeni Dosya Oluşturma File f = new File(dosyaAdi); // Dosya nesnesi if(!f.exists()){ //Dosya zaten var mı f.createNewFile(); //Dosyayı oluştur } File dosya = new File("ornek.dat"); File dosya = new File ("C:/OrnekProgram/test.dat"); Bulunulan klasordeki ornek.dat dosyasını açar C:\OrnekProgram klasöründeki test.dat dosyasını açar. Dosyanın adresi / ayracı ile verilir. Dosya İşlemleri if ( dosya.exists( ) ) { if ( dosya.isFile() ) { File klasor = new File("C:/"); String dosyalar[] = klasor.list(); for (int i = 0; i < dosyalar.length; i++) { System.out.println(dosyalar[i]); } dosya değişkeni gerçekten var olan bir dosyayı mı gösteriyor. dosya bir doysa mı yoksa bir klasör mü. C:\ verilen klasördeki bütün dosyaları listeler. Dosya Silme File f = new File(dosyaAdi); //Dosya Nesnesi if(f.exists()){ //Dosya var mı f.delete(); //Dosyayı sil } Dosya Okuma 1 import java.io.*; public class dosyaornek4 { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("ornek.txt"); int ch = 0; while (ch != ‐1) { ch = fis.read(); char karakter = (char)ch; System.out.print(karakter); } fis.close(); } catch (Exception e) { e.printStackTrace(); } } } Dosya Okuma 2 import java.io.*; public class dosyaornek5 { public static void main(String[] args) { try { FileReader fr = new FileReader("ornek.txt"); BufferedReader br = new BufferedReader(fr); while(br.ready()){ String satir = br.readLine(); System.out.println(satir); } fr.close(); br.close(); } catch (Exception e) { e.printStackTrace(); } } } Dosya Okuma 3 import java.io.*; import java.util.Scanner; public class dosyaornek6 { public static void main(String[] args) throws Exception{ Scanner s = new Scanner( new File("ornek.txt")); while(s.hasNext()){ String satir = s.nextLine(); System.out.println(satir); } s.close(); } } Dosya Yazma 1 import java.io.*; public class dosyaornek7 { public static void main(String[] args) { try { FileOutputStream fos = new FileOutputStream("ornek.txt"); String yazi = "Bu satir dosyaya yazilacak\naltina da bu satir yazilacak."; fos.write(yazi.getBytes()); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } } Dosya Yazma 2 import java.io.*; public class dosyaornek8 { public static void main(String[] args) throws Exception { FileWriter fw = new FileWriter("ornek2.txt"); BufferedWriter bw = new BufferedWriter(fw); bw.write("Bu satiri yaz\nyeni satira gec."); bw.flush(); bw.close(); } }