• Merhaba Ziyaretçi.
    "Yapay Zeka Objektif " Fotoğraf Yarışması başladı. İlgili konuya  BURADAN  ulaşabilirsiniz. Sizi de bu yarışmada görmek isteriz...

[Java] Basit bir veri tabanı sınıfı (dosyaya kaydeder, okur)

merakettim

Homo Sapiens Sapiens
Özel üye
HashMap ve ArrayList kullanılarak oluşturduğumuz bir veri bloğunu dosyaya kaydetmek ve gerektiğinde(uygulama kapatılıp açıldığında) tekrar kullanmak için dosyadan okuma işlerini yapar. Ayrıca sınırsız anahtar (HashMap özelliği) sağlar.


DataListFromFile.java
Java:
public class DataListFromFile
{
    HashMap<String,ArrayList<String>> data=new HashMap<String,ArrayList<String>>();
    String dosya;
    DataListFromFile(String _dosya){
    
        dosya=_dosya;
    
    }

    void setKey(String anahtar){
        data.put(anahtar,new ArrayList<String>());
    }
    
    void saveAs(String _dosya){
        dosya=_dosya;
        save();
        
    }
    int save(){
    
          
        try
        {
            File f=new File(dosya);
            String satir;
            
            FileWriter fw=new FileWriter(f);
            for(String anahtar:data.keySet()){
                satir=anahtar;
               for(String eleman:data.get(anahtar))
               satir+="::~::"+eleman;
               fw.write(satir+"\n");
               }
              
            
            fw.flush();
            fw.close();
        }
        catch (IOException e)
        {
            System.err.println(e.getMessage()+"-> kaydederken bir sorun oluştu");
            return -1;
        }
        
        
        return 0;
    }
    static DataListFromFile create(String _dosya){
        
        DataListFromFile dlff=new DataListFromFile(_dosya);

        

        try
        {
            File file = new File(_dosya);
            BufferedReader br = new BufferedReader(new FileReader(file));
            String st;
            
            
                while ((st = br.readLine()) != null)
                {
                
                int say=0;
                String anahtar="";
                    for(String parca:st.split("::~::"))
                        if(say++==0)
                            dlff.setKey(anahtar=parca);
                        else
                            dlff.data.get(anahtar).add(parca);
                        
                        
                        
                }
            
                
            
            
            br.close();
        }
        catch (FileNotFoundException e)
        {}
        catch (IOException e)
        {}
        
        
    
        return dlff;
    }
    
}


Sınıf çağrısı

Java:
String filePath = "/storage/emulated/0/Download/aa/test.txt";
        DataListFromFile dlff=new DataListFromFile(filePath);
    
        dlff.setKey("adi");
        dlff.data.get("adi").add("süleyman");
System.out.println(dlff.data.get("adi").get(0));
dlff.save();

        DataListFromFile test=DataListFromFile.create(filePath);
        System.out.println(test.data.get("adi").get(0));
        test.saveAs(filePath+"as.txt");
 
Top