Java ile mini oyun için veri tutma

KennyVes

Hectopat
Katılım
28 Aralık 2019
Mesajlar
147
Çözümler
1
Merhaba dostlar Java'da mini bir oyun geliştiriyorum strateji 2D verileri tutmak için hangi teknolojiyi kullanmamı tavsiye edersiniz? Json için araştırdım birkaç kütüphane buldum istediğim gibi çalıştırdım ama jar dosyası başka PC de çalışmıyor. XML için de yeterli kaynak bulamadım offline bir veri tutma teknolojisi arıyorum o yüzden SQL vb veri tabanı tercih etmiyorum fikirlerinize açığım, en son olmadı not defterini kullanacağım :))
 
JSON en güzel yöntemidir, başka bir bilgisayarda çalışmamasının sebebi ise konumun sizin bilgisayarınıza göre verilmiş olmasıdır.

Java projesinin çalıştığı konuma erişmek için System.getProperty("user.dir") kodunu kullanabilirsiniz.
 
JSON en güzel yöntemidir, başka bir bilgisayarda çalışmamasının sebebi ise konumun sizin bilgisayarınıza göre verilmiş olmasıdır.

Java projesinin çalıştığı konuma erişmek için System.getProperty("user.dir") kodunu kullanabilirsiniz.
Cevap verdiğiniz için teşekkür ederim bu konuda yardımcı olabilir misiniz ? kaynak biliyor musunuz link vs ? birkaç tane denedim fakat jar dosyası hatalı vs çalıştı.
 
Cevap verdiğiniz için teşekkür ederim bu konuda yardımcı olabilir misiniz ? kaynak biliyor musunuz link vs ? birkaç tane denedim fakat jar dosyası hatalı vs çalıştı.

Bu sitede JSON dosyasını string olarak almayı göstermiş.

[CODE lang="java" title="Java"]JSONObject json = new JSONObject();

json.put("isim", "test");
json.put("numara", 100);
json.put("fiyat", 100.2);[/CODE]

Burada da aldığınız bu JSON formatındaki string'i nasıl dosya olarak kaydedebileceğiniz gösterilmiş. Dosyayı ilk cevabımı da kullanarak dinamik bir konuma yani projenin çalıştığı konuma kaydedeceksiniz.
 

Bu sitede JSON dosyasını string olarak almayı göstermiş.

[CODE lang="java" title="Java"]JSONObject json = new JSONObject();

json.put("isim", "test");
json.put("numara", 100);
json.put("fiyat", 100.2);[/CODE]

Burada da aldığınız bu JSON formatındaki string'i nasıl dosya olarak kaydedebileceğiniz gösterilmiş. Dosyayı ilk cevabımı da kullanarak dinamik bir konuma yani projenin çalıştığı konuma kaydedeceksiniz.
evet biliyorum o siteyi deneyelim bakalım

Bu sitede JSON dosyasını string olarak almayı göstermiş.

[CODE lang="java" title="Java"]JSONObject json = new JSONObject();

json.put("isim", "test");
json.put("numara", 100);
json.put("fiyat", 100.2);[/CODE]

Burada da aldığınız bu JSON formatındaki string'i nasıl dosya olarak kaydedebileceğiniz gösterilmiş. Dosyayı ilk cevabımı da kullanarak dinamik bir konuma yani projenin çalıştığı konuma kaydedeceksiniz.
yazmaya yönelik bir şey yaptım kendi bilgisayarımda çalışıyor ama diğer pc de jar dosyasını çalıştırıyorum json dosyasını oluşturuyor ama verileri yazmıyor.
 
Son düzenleme:
evet biliyorum o siteyi deneyelim bakalım

yazmaya yönelik bir şey yaptım kendi bilgisayarımda çalışıyor ama diğer pc de jar dosyasını çalıştırıyorum json dosyasını oluşturuyor ama verileri yazmıyor.
Verileri yazdırığınız dosyanın yolu ile oluşturduğunuz yol aynı mı? Yazdırma kodunuzu paylaşabilir misiniz?

Yazdırmak için kullandığınız BufferedWriter'i kapatıyor musunuz?
 
Java:
                JSONObject obj = new JSONObject();

                  obj.put("name", "foo");
                  obj.put("surname", "Melih");
                  obj.put("goldname", "Cesursdswdswdswdwddw");
                  obj.put("diamondname", "Fatih");
                  obj.put("platinname", "Supehhhhr");
                  obj.put("num", 100666);
                  obj.put("balance", 1000.21);
                  obj.put("is_vip", false);
                    //şimdi veriler ekleyelim.                   
                    // TODO Auto-generated method stub               
                    //FileWriter writer = new FileWriter("E:\\bahtiyar.json");
                    FileWriter writer;
                    try {
                        writer = new FileWriter("C:\\Users\\cesur\\AppData\\Roaming\\elma1.json");
                        writer.write(obj.toString());
                        writer.close();
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
Java:
                JSONObject obj = new JSONObject();

                  obj.put("name", "foo");
                  obj.put("surname", "Melih");
                  obj.put("goldname", "Cesursdswdswdswdwddw");
                  obj.put("diamondname", "Fatih");
                  obj.put("platinname", "Supehhhhr");
                  obj.put("num", 100666);
                  obj.put("balance", 1000.21);
                  obj.put("is_vip", false);
                    //şimdi veriler ekleyelim.                  
                    // TODO Auto-generated method stub              
                    //FileWriter writer = new FileWriter("E:\\bahtiyar.json");
                    FileWriter writer;
                    try {
                        writer = new FileWriter("C:\\Users\\cesur\\AppData\\Roaming\\elma1.json");
                        writer.write(obj.toString());
                        writer.close();
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
Java:
/ Dosya kontrol
                File f = new File("C:\\Users\\cesur\\AppData\\Roaming\\elma1.json");
      
                // Yeni Dosya Oluştur
                // Dosyanın olup olmadığını kontrol edio oluştur.
                try {
                    if (f.createNewFile())
                        System.out.println("Dosya Oluşturuldu");
                    else
                        System.out.println("Dosya Zaten var!");
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
önce dosyayı oluşturuyor sonra yazdırıyorum ikisi farklı button da test etmek için butonlar ile yapıyorum
 
Java:
                JSONObject obj = new JSONObject();

                  obj.put("name", "foo");
                  obj.put("surname", "Melih");
                  obj.put("goldname", "Cesursdswdswdswdwddw");
                  obj.put("diamondname", "Fatih");
                  obj.put("platinname", "Supehhhhr");
                  obj.put("num", 100666);
                  obj.put("balance", 1000.21);
                  obj.put("is_vip", false);
                    //şimdi veriler ekleyelim.                 
                    // TODO Auto-generated method stub             
                    //FileWriter writer = new FileWriter("E:\\bahtiyar.json");
                    FileWriter writer;
                    try {
                        writer = new FileWriter("C:\\Users\\cesur\\AppData\\Roaming\\elma1.json");
                        writer.write(obj.toString());
                        writer.close();
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();

Java:
/ Dosya kontrol
                File f = new File("C:\\Users\\cesur\\AppData\\Roaming\\elma1.json");
    
                // Yeni Dosya Oluştur
                // Dosyanın olup olmadığını kontrol edio oluştur.
                try {
                    if (f.createNewFile())
                        System.out.println("Dosya Oluşturuldu");
                    else
                        System.out.println("Dosya Zaten var!");
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
önce dosyayı oluşturuyor sonra yazdırıyorum ikisi farklı button da test etmek için butonlar ile yapıyorum
Tahmin ettiğim şey. Dosyayı oluştururken kendi bilgisayarınıza özel bir konum olan AppData klasörünü kullanmışsınız. System.getProperty("user.dir") kullansaydınız dinamik olarak yolu çekeceği için farklılık olmamış olurdu.

File f = new File("C:\\Users\\cesur\\AppData\\Roaming\\elma1.json"); kısmından bahsediyorum.

File f = new File(System.getProperty("user.dir") + "\\elma1.json");
 
Tahmin ettiğim şey. Dosyayı oluştururken kendi bilgisayarınıza özel bir konum olan AppData klasörünü kullanmışsınız. System.getProperty("user.dir") kullansaydınız dinamik olarak yolu çekeceği için farklılık olmamış olurdu.

File f = new File("C:\\Users\\cesur\\AppData\\Roaming\\elma1.json"); kısmından bahsediyorum.

File f = new File(System.getProperty("user.dir") + "\\elma1.json");
Sanırım siz sorunu almamışsınız dosyayı zaten oluşturuyor filewrite kısmı hatalı write etmiyor yazmıyor kendi pcdem yazıyor
 
bakıcağım ama dosyayı oluşturuyor aynı dizine ama neden okumuyor ki bir deneyeyim birde böyle appdata dizinine gidecek mi ?
Böyle AppData dizinine değil de programın çalıştığı yere oluşur. AppData klasörüne oluşturmak için System.getenv("APPDATA") kodunu kullanmanız gerekiyor. (C:\Users\<kullanıcı>\AppData klasörünü verir.)


getEnv() Windows yer tutucularını verir, USERPROFILE gibi. getProperty() ise Java'nın oluşturduğu hazır yer tutucuları verir.
 

Yeni konular

Geri
Yukarı