.txt dosyasından veri çekme

McWeb

Kızıltaş Madencisi
Mesajlar
467
En iyi cevaplar
0
Beğeniler
120
Puanları
610
Uğraştığım bir plugin için .txt dosyasından satır satır veri çekmek istiyorum. Yani 1. Satırda a, 2. Satırda b yazıyorsa bunları tek tek çekmek istiyorum nasıl yapabilirim?
 


Elfen

Kızıltaş Madencisi
Mesajlar
508
En iyi cevaplar
0
Beğeniler
596
Puanları
1,230
JSON kullan.
 

McWeb

Kızıltaş Madencisi
Mesajlar
467
En iyi cevaplar
0
Beğeniler
120
Puanları
610
Sınırsız miktarda veri ekleme gibi bir şey sunmak istiyorum ancak bunun için .yml deki gibi bir veri adı kullanmak istemiyorum . Jsonda bu mümkün mü
 

MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
Java'nın hangi versiyonuyla eklendiğini hatırlamıyorum ama alttaki kod bu satır okuma işini aşırı kolaylaştıran bir şey:
Kod:
List<String> lines = Files.readAllLines(new File("dosyanın yolu").toPath());
Buradaki "lines" değişkeni her satırı ayrı ayrı tutacaktır. Yani senin durumunda "lines.get(0)" dersen sana "a" verecektir.

Edit: Eğer gerekirse Charset de belirtebilirsin.
Kod:
List<String> lines = Files.readAllLines(new File("dosyanın yolu").toPath(),
Charset.forName("Utf-8")
);
 

McWeb

Kızıltaş Madencisi
Mesajlar
467
En iyi cevaplar
0
Beğeniler
120
Puanları
610
Java'nın hangi versiyonuyla eklendiğini hatırlamıyorum ama alttaki kod bu satır okuma işini aşırı kolaylaştıran bir şey:
Kod:
List<String> lines = Files.readAllLines("dosyanın yolu");
Buradaki "lines" değişkeni her satırı ayrı ayrı tutacaktır. Yani senin durumunda "lines.get(0)" dersen sana "a" verecektir.
Hocam peki dosyanın kaç satır olduğunu çekebilir miyiz
 

MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
Hocam peki dosyanın kaç satır olduğunu çekebilir miyiz
O kodda küçük bir hata yapmışım düzenledim bir daha bakarsın.

Eğer "lines.size()" dersen bu sana o listenin büyüklüğünü dolayısıyla da satır sayısını verir.
 

Whoisthatinblack

Taş Madencisi
Mesajlar
70
En iyi cevaplar
0
Beğeniler
85
Puanları
280
Java'nın hangi versiyonuyla eklendiğini hatırlamıyorum ama alttaki kod bu satır okuma işini aşırı kolaylaştıran bir şey:
Kod:
List<String> lines = Files.readAllLines(new File("dosyanın yolu").toPath());
Buradaki "lines" değişkeni her satırı ayrı ayrı tutacaktır. Yani senin durumunda "lines.get(0)" dersen sana "a" verecektir.

Edit: Eğer gerekirse Charset de belirtebilirsin.
Kod:
List<String> lines = Files.readAllLines(new File("dosyanın yolu").toPath(),
Charset.forName("Utf-8")
);
Java'nın herhangi bir versiyonuyla gelmedi çünkü bahsettiğin method Guava'ya ait :)

Edit: Files.readLines() methodu ile karıştırmışım :/ Java 8 ile birlikte gelen bir method readAllLines
 

McWeb

Kızıltaş Madencisi
Mesajlar
467
En iyi cevaplar
0
Beğeniler
120
Puanları
610
Kod:
try {       
            List<String> lines = Files.readAllLines(new File(plugin.getDataFolder() , "/Test.txt").toPath());  
            player.sendMessage(lines.get(0));
            player.sendMessage(lines.get(1));
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
Bu şekilde kullanmayı denedim ancak sunucuya yükleyince kodun bu kısmı ile ilgili hata veriyor liste oluşmuyor sanırım
 

MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
Kod:
try {      
            List<String> lines = Files.readAllLines(new File(plugin.getDataFolder() , "/Test.txt").toPath()); 
            player.sendMessage(lines.get(0));
            player.sendMessage(lines.get(1));
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
Bu şekilde kullanmayı denedim ancak sunucuya yükleyince kodun bu kısmı ile ilgili hata veriyor liste oluşmuyor sanırım
Hata kodun kendisinde değil. Çünkü kendi oluşturduğum bir .txt dosyası için denediğimde çalıştı. Senin verdiğin "Test.txt" dosyasını bulamıyor yani. Bu şekilde nedenini anlayamıyorum tabi.
 

McWeb

Kızıltaş Madencisi
Mesajlar
467
En iyi cevaplar
0
Beğeniler
120
Puanları
610
Hata kodun kendisinde değil. Çünkü kendi oluşturduğum bir .txt dosyası için denediğimde çalıştı. Senin verdiğin "Test.txt" dosyasını bulamıyor yani. Bu şekilde nedenini anlayamıyorum tabi.
Hmm dosyayı oluştururken
Kod:
File file = new File(this.getDataFolder() , "/Test.txt");
şeklinde dosyayı belirlemiştim ve oluştururken sıkıntı çıkarmamıştı
 

Whoisthatinblack

Taş Madencisi
Mesajlar
70
En iyi cevaplar
0
Beğeniler
85
Puanları
280
Hmm dosyayı oluştururken
Kod:
File file = new File(this.getDataFolder() , "/Test.txt");
şeklinde dosyayı belirlemiştim ve oluştururken sıkıntı çıkarmamıştı
Dosyayı ne şekilde oluşturdun? Tam kodu neden paylaşmıyorsun? Konsolda aldığın hatayı ve hatanın bulunduğu tam satırı neden düzgün bir şekilde belirtmiyorsun?
 

McWeb

Kızıltaş Madencisi
Mesajlar
467
En iyi cevaplar
0
Beğeniler
120
Puanları
610
Sorunu çözdüm
Kod:
 public static String DIR = "./plugins/McWeb";
şeklinde bir değişken oluşturup
Kod:
 new File(DIR + "/Test.txt")
şeklinde kullandım
 

Whoisthatinblack

Taş Madencisi
Mesajlar
70
En iyi cevaplar
0
Beğeniler
85
Puanları
280
Sorunu çözdüm
Kod:
 public static String DIR = "./plugins/McWeb";
şeklinde bir değişken oluşturup
Kod:
 new File(DIR + "/Test.txt")
şeklinde kullandım
1- Static sözcüğü "public, private, protected, final" gibi bir access modifier değildir yalnızca API ve utility classlarında gerektiğinde final ile birlikte kullanılmalıdır (methodun override edilemediğinden emin olmak için) ve değişkenler üzerinde asla ama asla kullanılmamalıdır.

2- File file = new File(this.getDataFolder() , "Test.txt"); deseydin de kodun çalışacaktı. File'ın 2. argümanına "/" koymamalısın.

3- 1. yi dikkate almazsan ileride çok üzüleceksin.
 

Üst