JAVA etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
JAVA etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Spring Boot Uygulamasını Heroku üzerinde Deploy Etme

Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim.


Önce spring boot ile basit bir rest servis yazalım ve bunun doğru bir şekilde çalıştığını onaylayalım.






Buradan bir hesap oluşturuyoruz. Daha sonra buradan Heroku CLI'yı indirip kuruyoruz. Kurulum gerçekleştikten sonra login oluyoruz 

Login olduktan sonra projemizin root konumuna gidiyoruz ve heroku create komutu ile yeni bir app oluşturuyoruz.



https://calm-bayou-73911.herokuapp.com/ default olarak yüklendi.


Şimdi de projemizi git'e atıp commit edelim. Daha sonra uygulamamızı yaratırken oluşturulan "https://git.heroku.com/calm-bayou-73911.git'i" projemize bağlıyoruz. Github üzerinden boş bir repository oluşturduğunuzu düşünün ve localde'ki dosyalarınızı oluşturduğunuz uzak repoya göndermek istiyorsunuz(Github). Aynı işlem. Heroku bizim için herşeyi halletti. Git ile ilgili daha fazla bilgi almak isterseniz buradaki yazımı inceleyebilirsiniz.





Görev tamamlandı :). Bir sonraki yazıda görüşmek üzere.. İyi kodlamalar...











Birleştirmeli Sıralama (Merge Sort) Nedir ?

Birleştirme sıralama(Merge sort) algoritması adından da anlaşılacağı üzere bir sıralama algoritmasıdır. O(n log(n)) karmaşıklığına sahiptir. Girdi listesini en küçük hale gelene kadar ikili parçalara ayırır ve bu parçaları kendi aralarında sıralayarak birleştirir ve nihayetinde sıralanmış çıktı elde edilir.


Merge sort animation.gif
Wikipedia

Elimizde böyle bir liste olsun ve bu listeyi sıralamaya çalışıyor olalım.

  | 38 | 27 | 43 | 3 | 9 | 82 | 10 | 

İlk açamada listemizi 2'ye bölüyoruz. Tabi burada listemizdeki eleman sayısı tek olduğundan tam olarak bölemiyoruz.

                                                           | 38 | 27 | 43 | 3 |            | 9 | 82 | 10 | 

İşlemimizi karşılaştırabileceğimiz 2 sayı kalana kadar devam ettiriyoruz.

                                                      | 38 | 27 |         | 43 | 3 |         | 9 | 82 |        | 10 |  

Evet şimdi sayılarımızı sıralayarak birleştirebiliriz. 

                                                      | 27 | 38 |          | 3 | 43 |        | 9 | 82 |        | 10 | 

                                                          | 3 | 27 | 38 | 43 |               | 9 | 10 | 82 | 

                                                                      | 3 | 9 | 10 | 27 | 38 | 43 | 82 |




Mantığını anladığımıza göre java ile nasıl kodlayabileceğimize bakabiliriz.






Burada sort, doSort ve merge adında 3 fonksiyon mevcut. doSort recursive olarak çalışıyor. Main fonksiyonunda sort fonksiyonuna parametre olarak gönderilen dizinin boyutunda boş bir dizi oluşturuluyor(tmp). Sonrasın da parametler doSort fonksiyonuna gönderiliyor. Orada bölünen dizi merge fonksiyonunda sıralanarak birleştiriliyor. Kodu satır satır açıklamam epeyce bir zaman alır. Bunun yerine kod parçasını alıp debug etmenizi öneririm. Bir sonraki yazıda görüşmek üzere. İyi çalışmalar.

JAVA-SOKET İLE BASİT BİR İSTEMCİ-SUNUCU UYGULAMASI

  Bu uygulamamızda Java'nın soket nimetinden faydalanacağız.Localhost üzerinden istemci-sunucu mimarisini kullanarak basit bir uygulama yapacağız.İstemciden alınan sayının(request),server'da faktöriyel'ini alıp sayıyı istemciye geri (response) döndüreceğiz.İlk olarak istemci tarafını kodluyoruz.

client.java
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
public class Client {
    public static void main(String [] args) throws IOException{
        int number,temp;
        Scanner sc1=new Scanner(System.in);
        Socket s=new Socket("127.0.0.1",496);
        Scanner sc2=new Scanner(s.getInputStream());
        System.out.println("Faktöriyeli alınacak sayi : ");
        number=sc1.nextInt();
        PrintStream ps=new PrintStream(s.getOutputStream());
        ps.println(number);
        temp=sc2.nextInt();
        System.out.println(number+"! ="+temp);
    }
}

Soket sınıfından nesnemizi türettik.Bu sınıfımızın yapılandırıcısına 2 parametre girdik.İlki cihazımın ip adresi(şimdilik localhost).İkincisi de iletişimin hangi port üzerinden olacağı.sc1 istemciden alınacak sayi.sc2 ise sunucuya konsol'a yazılacak değeri okuyup sunucu ile iletişime geçecek.InputStream ve OutputStream hem istemci hemde sunucuda yazılmalı.Çünkü haberleşme iki taraflı oluyor.İstemci bir istekte bulunuyor,sunucu gelen isteğe cevap veriyor.İstemci de gelen cevabı alıyor.

Şimdi de sunucu tarafını kodlayalım..


server.java

import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class Server {
        public static int factorial(int num){
             if (num == 1)
                return 1;
                    return num*factorial(num-1);
          }
    public static void main (String [] args) throws IOException{
        int number,temp;
        ServerSocket s1=new ServerSocket(496);
        Socket ss=s1.accept();
        Scanner sc=new Scanner(ss.getInputStream());
        number=sc.nextInt();
        temp=factorial(number);
        PrintStream p=new PrintStream(ss.getOutputStream());
        p.println(temp);
    }
}


accept() fonksiyonu ile server 496 nolu soketi dinlemeye alıyor.Sonra getInputStream ile değeri okuyor. number=sc.nextInt(); gelen değerin integer tipinde olduğunu söylüyor.Daha sonra yazdığımız recursive fonksiyona parametre olarak yolluyoruz.Bize dönen değeri temp değişkenine atıp bu değeri istemciye yolluyoruz.Benzer şekilde swing,awt kütüphanelerini kullanarak basit chat,karşılıklı online oyunlar programlayabilirsiniz...

İYİ ÇALIŞMALAR




SWING İLE BULMACA YAPIMI



import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
import javax.swing.event.*;
/**
 *
 * @author Gökhan
 */
public class Bulmaca extends JFrame  implements ActionListener {
   static JTextField[] txtField = new JTextField[28];
   JButton jbtn;
   static  JLabel[] s=new JLabel[7];
   String deger="X";
   Dimension panel=new Dimension(610,610);
   JLabel sorular=new JLabel();
    int kazanc;
    int kayip;
    Random r=new Random();
    int secilen=r.nextInt(10);
    String []a=new String[27];
    JLabel sa;
   public void karala(int[]k)
   {
     
       for(int i=0;i<k.length;i++)
       {
              txtField[k[i]].setBackground(Color.black);
              txtField[k[i]].setEnabled(false);
              txtField[k[i]].setText("X");
       }
   }
   public void sonuc(){     
          kazanc=JOptionPane.showOptionDialog(null,
                        "Devam etmek istiyor musunuz ?",
                        "KAZANDINIZ", JOptionPane.YES_NO_OPTION,
                        JOptionPane.PLAIN_MESSAGE, null, null, null);
   
                   if(kazanc==JOptionPane.YES_OPTION)
           {
               
                new Bulmaca();
           }
            else {
                System.exit(1);
            }
        }
   public JPanel soruEkle(JLabel [] s){
        JPanel soru=new JPanel();
        soru.setPreferredSize(panel);     
       for (JLabel item : s) {
           soru.add(item);
       }
        return soru;
 
   }
   public  void kotuSonuc(){
     kayip = JOptionPane.showOptionDialog(null,
                        "Devam etmek istiyor musunuz ?",
                        "KAYBETTİNİZ", JOptionPane.YES_NO_OPTION,
                        JOptionPane.PLAIN_MESSAGE, null, null, null);
            if(kayip==JOptionPane.YES_OPTION)
           {   
            new Bulmaca();
           }
            else {
                System.exit(1);
            }
   }
   public void kontrolEt(String durum){
         for(int i=0;i<28;i++){
               deger=deger+txtField[i].getText();
           }
   if(deger.equals(durum)){
       sonuc();
           }
   else{
      kotuSonuc();
   }
   }
   public JButton butonEkle(){
        jbtn=new JButton("Cevapları Göster");
        jbtn.addActionListener(this);
        jbtn.setActionCommand("cevapgoster");
        return jbtn;
   }
    public Bulmaca(){   
        Random renk=new Random();
        int renksec=renk.nextInt(3);
        this.setDefaultCloseOperation(3);
        this.setSize(630,375);
        this.setLayout(new FlowLayout());
        Dimension jtSize =new Dimension(40,40);
        JPanel jpn1=new JPanel();
        jpn1.setPreferredSize(new Dimension(320,190));
        if(renksec==0)jpn1.setBackground(Color.yellow);
        if(renksec==1)jpn1.setBackground(Color.red);
        if(renksec==2)jpn1.setBackground(Color.ORANGE);
   for (int i = 0; i < 28; i++) {
     txtField[i] = new JTextField(Integer.toString(i+1));
    txtField[i].setHorizontalAlignment(JTextField.CENTER);
     jpn1.add(txtField[i]);
     txtField[i].setPreferredSize(jtSize);
   }
   if(secilen==0){
        int[] t1={1,6,15,20,21,27};
        karala(t1);
   s[0]=new JLabel("1)PHP'de form metodu (1-15)");
   s[1]=new JLabel("2)PHP'de rastgele sayı seçmek istediğimizde kullanacağımız fonksiyon (3-6)");
   s[2]=new JLabel("3)Bir metni istediğimiz karakterden parçalara ayırabileceğimiz PHP fonksiyonu(8-14)");
   s[3]=new JLabel("4)PHP'de sayfaya yazı basmak için kullanılan komut(17-20)");
   s[4]=new JLabel("5)PHP'de bir değişkenin var olup olmadığını test eden fonksiyon(23-27)");
   s[5]=new JLabel("");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
   if(secilen==1){
        int [] t2={6,7,12,19,21,22,23};
        karala(t2);
   s[0]=new JLabel("1)HTML'de oluşturulan bir tablonun kalınlığını ayarlayan anahtar kelime(1-6)");
   s[1]=new JLabel("2)HTML'de eklediğimiz JPEG dosyasının yerini belirttiğimiz anahtar kelime (14-28)");
   s[2]=new JLabel("3)HTML'de girdi girmenizi sağlaya tag(8-14)");
   s[3]=new JLabel("4)CSS'te bir list type.                   (25-28)");
   s[4]=new JLabel("5)HTML sayfasını parçalara ayırmamızı sağlayan tag.(15-19)");
   s[5]=new JLabel("6)HTML sayfasındaki bir CSS dosyasının linkini belirten anahtar kelime(9-12)");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
   if(secilen==2){
        int [] t3={0,13,15,16,17,24};
        karala(t3);
   s[0]=new JLabel("1)T-SQL'de tablo veya veritabanı oluştururken kullandığımız anahtar kelime(2-7)");
   s[1]=new JLabel("2)T-SQL'de kayıtları göstermek için kullandığımız anahtar kelime(14-28)");
   s[2]=new JLabel("3)T-SQL'de 10 değerden en büyüğünü getirmek için kullanılan fonksiyon(19-21)");
   s[3]=new JLabel("4)T-SQL'de 10 değerden en küçüğünü getirmek için kullanılan fonksiyon (22-24)");
   s[4]=new JLabel("5)T-SQL'de 10 değerin ortalamasını döndüren foksiyon(25-27)");
   s[5]=new JLabel("6)T-SQL'de 10 değerin toplamını döndüren fonksiyon (8-22)");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
      if(secilen==3){
        int [] t4={0,2,13,14,16,20,21,22};
        karala(t4);
   s[0]=new JLabel("1)C#'ta bir sınıftan nesne türetileceği zaman kullanılan anahtar kelime (2-16)");
   s[1]=new JLabel("2)C#'ta geriye herhangi bir değer döndürmeyen fonksiyon tipi (4-7)");
   s[2]=new JLabel("3)C#'ta bir String değişkeninin uzunluğunu bulmaya yarıyan anahtar kelime(8-13)");
   s[3]=new JLabel("4)C#'ta herzaman kullanılan çok önemli bir döngü     (18-20)");
   s[4]=new JLabel("5)C#'ta oluşturduğumuz bir dizinin boyutunu bulmak için kullanılan anahtar kelime(24-28)");
   s[5]=new JLabel("");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
         if(secilen==4){
        int [] t5={6,7,8,17,18,20,25,27};
        karala(t5);
   s[0]=new JLabel("1)C++'ta çok geniş bir erişim belirleyici (1-6)");
   s[1]=new JLabel("2)C++'ta bir sayıyı alta yuvarlayan math. fonksiyonu(10-14)");
   s[2]=new JLabel("3)C++'ta dışarıdan girilen değeri oluşturduğumuz değişkene atan anahtar kelime(15-17)");
   s[3]=new JLabel("4)C++'ta ekrana yazı basmak için kullanılan anahtar kelime(6-27)");
   s[4]=new JLabel("5)C++'ta girilen bir sayiyi üste yuvarlayan math. fonksiyonu(22-25)");
   s[5]=new JLabel("");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
     if(secilen==5){
        int [] t5={0,6,12,13,14,26,27};
        karala(t5);
   s[0]=new JLabel("1)CSS'te bir sınıf yazarken sınıfın önüne getirilen işaret (2-6)");
   s[1]=new JLabel("2)CSS'te bir id yazarken önüne getirilen işaret(10-14)");
   s[2]=new JLabel("3)CSS'te tanımlanmış sınırların dışında boşluk oluşturmak için kullanılır.(8-12)");
   s[3]=new JLabel("4)CSS'te bir font'un türünü seçmek için kullanılan alt anahtar kelime style(21-27)");
   s[4]=new JLabel("");
   s[5]=new JLabel("");
   s[6]=new JLabel("");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
 if(secilen==6){
        int [] t5={0,14,15,19,20,25,26,27};
        karala(t5);
   s[0]=new JLabel("1)Çevremizdeki ortam (sıcaklık, basınç,vb) değişikliklerini algılayan cihazlar(2-7)");
   s[1]=new JLabel("2)Çok sayıda devre elemanlarından tek bir devreyi oluşturan yapı(8-14)");
   s[2]=new JLabel("3)Sayısal tasarımda birden çok çıkışı tek çıkışı aktarır(17-19)");
   s[3]=new JLabel("4)Bir bitlik veriyi tutmak için kullanılan flip flop devresi(22-25)");
   s[4]=new JLabel("");
   s[5]=new JLabel("");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
  if(secilen==7){
        int [] t5={0,7,8,12,14,17,18,19,27};
        karala(t5);
   s[0]=new JLabel("1)Ağ öğelerinin birbirlerine bağlanmasına olanak veren ağ donanımı(2-7)");
   s[1]=new JLabel("2)Ağ öğelerinin birbirlerine bağlanmasına olanak veren ağ donanım aygıtı(7-14)");
   s[2]=new JLabel("3)Bir bilgisayar ağında, bir cihazın ağ donanımını tanımaya yarayan adres(10-12)");
   s[3]=new JLabel("4)Ağ üzerinden birbirleri ile veri alışverişi yapmak için kullanılan adres(16-17)");
   s[4]=new JLabel("5)Aynı ağ iletişim kurallarını kullanan iki bilgisayar ağı arasında veri iletimini sağlar(22-27)");
   s[5]=new JLabel("");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
   if(secilen==8){
        int [] t5={7,14,19,20,21,22,23};
        karala(t5);
   s[0]=new JLabel("1)Birden fazla işin aynı anda çalışması halinde birbirlerini beklemesini sağlayan bir mekanizma(1-7)");
   s[1]=new JLabel("2)Türkiye'de TÜBİTAK tarafından geliştirilen bir Linux dağıtımı olan işletim sistemi(9-14)");
   s[2]=new JLabel("3)İşletim sistemlerinde bir işlem oluşturmak için kullanılan fonksiyon(16-19)");
   s[3]=new JLabel("4)Process'ler arası iletişim için kullanılan bir fonksiyon(25-28)");
   s[4]=new JLabel("");
   s[5]=new JLabel("");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);
   this.add(soruEkle(s));
 }
   if(secilen==9){
        int [] t5={14,19,20,27};
        karala(t5);
   s[0]=new JLabel("1)Mobil uygulama geliştirme platformu ....... studio (1-7)");
   s[1]=new JLabel("2)Bir PHP framework'u (8-14)");
   s[2]=new JLabel("3)Basit Nesne Ulaşım Protokolü,dağınık uygulamalarda bilgi taşımaya yarayan protokol.(16-19)");
   s[3]=new JLabel("4)JSP'nin çalıştığı yer uygulama sunucusularından biri (25-28)");
   s[4]=new JLabel("");
   s[5]=new JLabel("");
   s[6]=new JLabel("-----");
   this.add(butonEkle());
   this.add(jpn1);

   this.add(soruEkle(s));
 } 
   this.setVisible(true);
    }   
    public static void main(String[] args) {
       new Bulmaca();
    }
   @Override
    public  void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("cevapgoster")){
       if(secilen==0){
           String cvp="XGXRANDXEXPLODETXECHOXXISSETX";
           String cevaplar="1)GET2)RAND3)EXPLODE4)ECHO5)ISSET";
           s[6].setText(cevaplar);
           kontrolEt(cvp);//php
         
    }
       if(secilen==1){
           String cvp="XBORDERXXHREFXSINPUTXRXXXDISC";
           String cevaplar="1)BORDER 2)SRC 3)INPUT 4)DISC 5)DIV 6)HREF";
           s[6].setText(cevaplar);
            kontrolEt(cvp);       //html
    }
       if(secilen==2){
          String cvp="XXCREATESELECTXUXXXMAXMINXAVG";
          String cevaplar="1)CREATE 2)SELECT 3)MAX 4)MIN 5)AVG 6)SUM";
          s[6].setText(cevaplar);
            kontrolEt(cvp);//SQL
       }
       if(secilen==3){
          String cvp="XXNXVOIDLENGTHXXWXFORXXXCOUNT";
          String cevaplar="1)NEW 2)VOID 3)LENGTH 4)FOR 5)COUNT";
          s[6].setText(cevaplar);
            kontrolEt(cvp);//C#
       }
       if(secilen==4){
           String cvp="XPUBLICXXXLOORCINXXUXCEILXTX";
           String cevaplar="1)PUBLIC 2)FLOOR 3)CIN 4)COUT 5)CEIL";
            s[6].setText(cevaplar);
            kontrolEt(cvp);//C++
       }
       if(secilen==5){
         String cvp="XXSHARPCSTYLEXXXMARGINNOKTAXX";
         String cevaplar="1)NOKTA 2)SHARP 3)MARGIN 4)STYLE";
        s[6].setText(cevaplar);
            kontrolEt(cvp);//CSS
       }
       if(secilen==6){
          String cvp="XXSENSORENTEGREXXMUXXXDATAXXX";
          String cevaplar="1)SENSOR 2)ENTEGRE 3)MUX 4)DATA";
         
         s[6].setText(cevaplar);
            kontrolEt(cvp);//TASARIM
       }
       if(secilen==7){
          String cvp="XXSWITCHXXMACXUXIPXXXBXROUTERX";
          String cevaplar="1)SWITCH 2)HUB 3)MAC 4)IP 5)ROUTER";
          s[6].setText(cevaplar);
            kontrolEt(cvp);//Ağ
       }
       if(secilen==8){
           String cvp="XXSEMAFORXPARDUSXFORKXXXXXPIPE";
           String cevaplar="1)SEMAFOR 2)PARDUS 3)FORK 4)PIPE";
           s[6].setText(cevaplar);
            kontrolEt(cvp);//işletim sistemleri
       }
       if(secilen==9){
         
           String cvp="XANDROIDLARAVELXSOAPXXTOMCATX";
           String cevaplar="1)ANDROID 2)LARAVEL 3)SOAP 4)TOMCAT";
           s[6].setText(cevaplar);
            kontrolEt(cvp);
       }
    }
    }
}







SWİNG İLE OKUDUĞUMUZ DOSYAYI GÖRÜNTÜLEME

/**
 *
 * @author Gökhan
 */
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;



public class DosyaOku extends JFrame implements ActionListener{
        JTextArea jtxa;
        int i;
        DefaultListModel<String> dlm;
        JList<String> jlist;
    public DosyaOku(){
        this.setDefaultCloseOperation(3);
        this.setSize(new Dimension(500,500));
        this.setLayout(new FlowLayout());
        JPanel jpn=new JPanel();
        jpn.setPreferredSize(new Dimension(400,400));
 
       
dlm = new DefaultListModel<String>();

jlist = new JList(dlm);

JScrollPane jscp = new JScrollPane(jlist);
jscp.setPreferredSize(new Dimension(166, 150));

jpn.add(jscp);
        JButton jbtn=new JButton("Dosyayı Göster");
        jbtn.setPreferredSize(new Dimension(120,30));
        jbtn.addActionListener(this);
       
     
        jpn.add(jbtn);
         
        this.add(jpn);
        this.setVisible(true);
    }
    public static int satirDondur(){
        int sayac=0;
  try{
            FileInputStream f=new FileInputStream("A.txt");
    try (DataInputStream d = new DataInputStream(f)) {
        BufferedReader b=new BufferedReader(new InputStreamReader(d));
        while(b.readLine()!=null){
            sayac++;
        }
    }
       }
        catch(Exception e)
       {
            System.err.println("Hata" + e.getMessage()); 
       }
  return sayac;
 
    }
   
    public static void main(String[] args) {
       new DosyaOku();
    } 

    @Override
    public void actionPerformed(ActionEvent e) {
         String [] str=new String[satirDondur()];
       
        try{
            FileInputStream f=new FileInputStream("A.txt");
    try (DataInputStream d = new DataInputStream(f)) {
        BufferedReader b=new BufferedReader(new InputStreamReader(d));
        for(i=0;i<str.length;i++){
        str[i]=b.readLine();
        dlm.addElement(str[i]);
        }
    }
       }
        catch(Exception ex)
       {
            System.err.println("Hata" + ex.getMessage()); 
       }
           
    }
}


Bir önceki yazımızda klasörümüze eklediğimiz bir text dosyamızı nasıl okuyabileceğimizi görmüştük.Şimdi de JList,JScrollPane ve JButton component'leri ile okuduğumuz dosyayı listeliyoruz.Böylece dosya üzerinde silme veya güncelleme işlemleri yapabilir.Veya bu dosyaları kontrollü bir şekilde veritabanına yazabiliriz.

İYİ ÇALIŞMALAR...

JAVA-Dosya Okuma

/**
 *
 * @author Gökhan
 */
import java.io.*;



public class DosyaDonusturucu {
    public static int satirDondur(){
        int sayac=0;
  try{
            FileInputStream f=new FileInputStream("A.txt");
    try (DataInputStream d = new DataInputStream(f)) {
        BufferedReader b=new BufferedReader(new InputStreamReader(d));
        while(b.readLine()!=null){
            sayac++;
        }
    }
       }
        catch(Exception e)
       {
            System.err.println("Hata" + e.getMessage()); 
       }
  return sayac;
 
    }
    public static void main(String[] args) {
        String [] str=new String[satirDondur()];

        try{
            FileInputStream f=new FileInputStream("A.txt");
    try (DataInputStream d = new DataInputStream(f)) {
        BufferedReader b=new BufferedReader(new InputStreamReader(d));
        for(int i=0;i<str.length;i++){
        str[i]=b.readLine();
        System.out.println(str[i]); 
        }
    }
       }
        catch(Exception e)
       {
            System.err.println("Hata" + e.getMessage()); 
       }
    } 
}


Öncelikle oluşturduğumu txt dosyasını java projemize ekledik sonrada txt dosyamızın kaç satırdan oluştuğunu öğrenmek için bir fonksiyon oluşturduk.Bunun nedeni dosyayı okuyacağımız için oluşturacağımız dizinin boyutunu belirlemek.Böylece geriye null değerler dönmeyecektir.Bu yordama gerek kalmadanda array.split kullanarak dosyayı okumamız mümkün...

İYİ ÇALIŞMALAR...

JAVA-OOP BASİT KOMUTLARI GERÇEKLEŞTİREBİLEN BİR ROBOT YAPIMI (ÇOK DAHA FAZLA GELİŞTİRİLEBİLİR)


package robot;
 import javax.swing.*;
public class ROBOT {
    public String name;
    public double R;
    public double theta;
    public ROBOT(String is){R=0;theta=0;name=is;}
    public ROBOT(String is,double Ri){name=is;R=Ri;theta=0;}
    public ROBOT(String is,double Ri,double theta_angle){name=is;R=Ri;theta=theta_angle*Math.PI/180.0;}
    public ROBOT(ROBOT r1){name=r1.name;R=r1.R;theta=r1.theta;}
    public void Turn_North(){theta=Math.PI/2.0;}
    public void Turn_South(){theta=3.0*Math.PI/2.0;}
    public void Turn_West(){theta=Math.PI;}
    public void Turn_East(){theta=Math.PI;}
    public void Turn(double angle){theta+=angle*Math.PI/180.0;}
    public void Scroll(){R+=1;}
    public void Scroll(double Ri){R+=Ri;}
    public void go_back(){R-=1;}
    public void go_back(double Ri){R-=Ri;}
    public String output(){
        String s="------------"+name+"---------------\n";
        s+="Cartesian coordinates x = "+R*Math.sin(theta)+" y = "+R*Math.cos(theta)+" \n";
        s+="Polar coordinates R = "+R+" Theta angle = "+theta*180/Math.PI+" \n";
            return s;
    }
    public static void main(String[] args) {
        ROBOT R2D2=new ROBOT("aRtuDitu");
        ROBOT z2=new ROBOT("GOKHAN",1.0,90.0);
        ROBOT z3=new ROBOT(R2D2);
        String s="";
        R2D2.Turn_North();R2D2.Scroll();s+=R2D2.output();
        R2D2.Turn_West();R2D2.Scroll(2.0);s+=R2D2.output();
        z2.Turn_East();z2.Scroll(3.0);s+=z2.output();
        z2.Turn_South();z2.Scroll();s+=z2.output();
        s+="Copy Robot z3 : "+z3.output();
        JOptionPane.showMessageDialog(null,s, "Robot class test",JOptionPane.PLAIN_MESSAGE);
}
    }

JAVA-POLİMORFİZM HAYVAN ÖRNEĞİ

class Hayvan {
public void avYakala() {
System.out.println("Hayvan av Yakala");
}
}
class Kartal extends Hayvan {
public void avYakala() {
System.out.println("Kartal av Yakala");
}
}
class Timsah extends Hayvan{
public void avYakala() {
System.out.println("Timsah av Yakala");
}
}
public class Polimorfizm {

  public static Hayvan rasgeleSec() {
int sec = ( (int) (Math.random() *3) ) ;
Hayvan h = null ;
if (sec == 0) h = new Hayvan();
if (sec == 1) h = new Kartal();
if (sec == 2) h = new Timsah();
return h;
}
    public static void main(String[] args) {
    Hayvan[] h = new Hayvan[3];
// diziyi doldur
for (int i = 0 ; i < 3 ; i++) {
h[i] = rasgeleSec(); //upcasting
}
// dizi elemanlarini ekrana bas
for (int j = 0 ; j < 3 ; j++) {
h[j].avYakala(); // !Dikkat!
}
    }
   
}

JAVA-INHERITANCE KİTAP ÖRNEĞİ

class Kitap2 {
public int sayfaSayisiOgren() {
System.out.println("Kitap2 - sayfaSayisiOgren() ");
return 440;
}
public double fiyatOgren() {
System.out.println("Kitap2 - fiyatOgren() ");
return 2500000 ;
}
public String yazarIsmiOgren() {
System.out.println("Kitap2 - yazarIsmiOgren() ");
return "xy";
}
}
class Roman2 extends Kitap2 {
public int sayfaSayisiOgren() {
System.out.println("Roman2 - sayfaSayisiOgren() ");
return 569;
}
public double fiyatOgren() {
System.out.println("Roman2 - fiyatOgren() ");
return 8500000 ;
}
public static void main( String args[] ) {
Roman2 r2 = new Roman2();
int sayfasayisi = r2.sayfaSayisiOgren();
double fiyat = r2.fiyatOgren();
String yazar = r2.yazarIsmiOgren();
}
}

JAVA-SWİNG Pİ SAYISININ HESABI

import javax.swing.*;
public class TEST {

    public static void main(String[] args) {
       //pi = 4 - 4/3 + 4/5 -4/7+4/9-4/11+...+
String s;
int i;
double pi=0;
int artieksi=-1;
    for(i=1;i < 100000;i++)
    {
        artieksi*=-1;
        pi+=4/(2.0*i-1.0)*artieksi;
    }
        s="pi = "+pi;
        JOptionPane.showMessageDialog(null,s,"pi sayısı hesabı",JOptionPane.PLAIN_MESSAGE);
    }
}

JAVA-DATE() (THREAD İLE ZAMAN KONTROLÜ)

import java.util.*;
public class Tutoriall {
    public static void main(String[] args) {
        try{
            System.out.println(new Date()+"\n");
            Thread.sleep(10000);
            System.out.println(new Date()+"\n");     
        }
        catch(Exception e)
        {
            System.out.println("Got on exception");
        }
    }
}

JAVA-INHERITANCE (KALITIM BASİT ÖRNEK)

 class FutbolTakimi
{
    public int TakiminDegeri;
    int EnDegerliOyuncusu;
    int Ligi(int t)
    {
        return t;
    }
}
class BirinciLig extends FutbolTakimi
{
    FutbolTakimi Gs=new FutbolTakimi();
}
public class WhatIsInheritance {
    public static void main(String[] args) {
       BirinciLig gs=new BirinciLig();
       gs.EnDegerliOyuncusu=33;
    }
   
}

Spring Boot Uygulamasını Heroku üzerinde Deploy Etme

Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...