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
Sınıf çağrısı
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");