Neler Yeni

Java'da dosya okurken her satırdan farklı değişken türü çekmek istiyorum.

var1ant

80+
Katılım
29 Aralık 2020
Mesajlar
47
Dahası  
Reaksiyon skoru
3
İsim
Deniz Verim
Örneğin txt dosyasının ilk satırından String çekeceğim ancak 2, 3, 4. satırlarda integer çekmek istiyorum. Sonra tekrardan String çekmek istiyorum. "hasNextLine()" methodu ile yapamadım.
 

ycs1907

80+
Katılım
18 Aralık 2024
Mesajlar
4
Dahası  
Reaksiyon skoru
0
İsim
Yusuf
Java'da hasNextLine() metodunu kullanarak bir dosyanın satırlarını okumak mümkün olsa da, dosyadan farklı türde veriler (String, Integer vb.) çekmek istediğinizde biraz daha dikkatli olmanız gerekir. Aşağıda, metin dosyasının ilk satırında bir String, sonraki satırlarda Integer verisi ve en son tekrar bir String verisi çekmeyi sağlayan bir örnek kodu bulabilirsiniz.

Örneğin, dosyanın içeriği şu şekilde olsun:
Kod:
First String
42
56
78
Last String

Java Kod Örneği:
Kod:
import java.io.*;
import java.util.Scanner;

public class DosyaOku {
    public static void main(String[] args) {
        try {
            // Dosyayı açıyoruz
            File file = new File("dosya.txt");
            Scanner scanner = new Scanner(file);

            // İlk satırda String okuyoruz
            if (scanner.hasNextLine()) {
                String firstString = scanner.nextLine();
                System.out.println("İlk String: " + firstString);
            }

            // 2, 3, 4. satırlarda Integer okuyoruz
            if (scanner.hasNextLine()) {
                int secondInt = Integer.parseInt(scanner.nextLine());
                System.out.println("İkinci Integer: " + secondInt);
            }
            if (scanner.hasNextLine()) {
                int thirdInt = Integer.parseInt(scanner.nextLine());
                System.out.println("Üçüncü Integer: " + thirdInt);
            }
            if (scanner.hasNextLine()) {
                int fourthInt = Integer.parseInt(scanner.nextLine());
                System.out.println("Dördüncü Integer: " + fourthInt);
            }

            // Son olarak, bir String daha okuyoruz
            if (scanner.hasNextLine()) {
                String lastString = scanner.nextLine();
                System.out.println("Son String: " + lastString);
            }

            // Scanner nesnesini kapatıyoruz
            scanner.close();
        } catch (FileNotFoundException e) {
            System.out.println("Dosya bulunamadı: " + e.getMessage());
        } catch (NumberFormatException e) {
            System.out.println("Bir sayıyı okurken hata oluştu: " + e.getMessage());
        }
    }
}

Açıklamalar:​

  1. Scanner kullanımı: Dosya okuma işlemi için Scanner sınıfını kullandık. hasNextLine() metodu, dosyada daha fazla satır olup olmadığını kontrol eder. Her seferinde nextLine() metodu ile bir satır okuruz.
  2. Veri türlerine göre okuma: İlk satır bir String olarak okunurken, 2., 3. ve 4. satırlar Integer türüne dönüştürülerek okunuyor. Son satır tekrar bir String olarak okunuyor.
  3. Hata kontrolü: NumberFormatException ile sayıları okurken oluşabilecek hataları, FileNotFoundException ile de dosyanın bulunamaması durumunu yakalarız.

Dosya Yapısı:​

  • İlk satır: String (örneğin, "First String")
  • İkinci, üçüncü ve dördüncü satırlar: Integer (örneğin, 42, 56, 78)
  • Son satır: String (örneğin, "Last String")
Bu şekilde dosyanızdan farklı türde verileri güvenli bir şekilde okuyabilirsiniz.

Bu işine yarar sanırım hocam.
 

man a man

80+ Bronze
Katılım
6 Haziran 2021
Mesajlar
766
if (scanner.hasNextInt()) {
int sayi = scanner.nextInt();
} else if (scanner.hasNextLine()) {
String metin = scanner.nextLine();
}

Bu şekilde sonraki değerin int mi, string mi olup olmadığına bakarak çekebilirsin.
 
Yeni mesajlar Yeni Konu Aç      

SON KONULAR

Forum istatistikleri

Konular
1,032,828
Mesajlar
9,309,224
Üyeler
163,731
Son üye
xerto
Top Bottom