import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;

public class JB_038_DosyaAcOkuYaz {

	public static void main(String[] args) throws IOException {    // throws IOException
		

		
		
		//-------------------- DOSYA OLUSTURMA ---------------
		
		// src klasörü içinde bir File nesnesi olusturuyoruz.
		File file = new File("src/JB_038_DosyaTest.java");  // .jpg  .txt .???
		
	//	try {
			
			// file nesnesine bagli olarak bir dosya olusturuyoruz.
			// Eger varsa "zaten bu dosya var" uyarisi aliyoruz.
			boolean value = file.createNewFile();
			if (value) {
				
				System.out.println("Yeni dosya olusturuldu..");
				
			} else {
				
				System.out.println("Bu isimli dosya zaten var.");
				
			}
			
	//	} catch(Exception e) {
			
	//		e.getStackTrace();
			
	//	}
		
		
		
		
			
		
		
		
		
		
		
		
		
		
		
		//-------------------- DOSYA IÇINE YAZMA ---------------
		
		
		// + operatoru kullanilarak çok satirli String tanimliyoruz.
		// Bu String tabiki bir java kodu :)
	    String javaKodu = "class JB_038_DosyaTest { \n" +
	                       "\tpublic static void main(String[] args) { \n" +
	                         "\t\tSystem.out.println(\"Bu bir java kodudur.\");\n"+
	                       "\t}\n"+
	                     "}";
	//     try {
	       // FileWriter kullanarak bir Writer nesnesi olusturuyoruz.
	       FileWriter daktilo = new FileWriter("src/JB_038_DosyaTest.java");

	       // javaKodu isimli String'i Writer nesnesi ile dosya içine yaziyoruz.
	       daktilo.write(javaKodu);
	       System.out.println("\n\nData dosya içine yazildi..");

	       // Writer nesnesini kapatiyoruz.
	       daktilo.close();
	     
	 //    } catch (Exception e) {
	    	 
	 //   	 e.getStackTrace();
	     
	 //    }
	
		
	     
	     
	     
	     
	     
	    
	    
	     
	     
	     
	     
	     
	     
		
		
		
		
		
		
		//-------------------- DOSYADAN OKUMA ---------------
		
	//	try {
			
			// input.txt dosyasi InputStream olarak yüklendi.
			// input.txt dosyasinin içeriginde olani yazdiriyoruz.:
			InputStream input = new FileInputStream("src/JB_038_DosyaTest.java");
			
			System.out.println("\n\nDosya içindeki veriler : \n");
			
			// ilk byte 'in okunmasi
			int i = input.read();  // (char)i yaparak bunu karakter olarak gostermesini saglariz.
			                       // Böylece tek tek karakterleri okuyup yazmasini saglayabiliyoruz.
			System.out.println("Dosyadaki ilk byte : " + i + " -> (char)i yaparsak : ) " + (char)i );
			
			while(i != -1) {  // i -1 den farkli oldugu surece islem devam eder.
				
				System.out.print((char)i);  // her okunan karakter yazdirilir...
				
				// Bir sonraki byte bu sekilde okutulur.
				i = input.read();
				
			}
			
			input.close();  // InputStream nsnesini kapatiyoruz.
			
	//	} catch(Exception e) {
			
	//		e.getStackTrace();
			
	//	}
		
		
		
		
		
		
		
		
		
		
		
		

	}

}
