Ecriture dans un fichier Texte
salut a tous . je désire remplir un fichier texte (FileWriter) avec des données provenant d'une base de données SQLITE. dans le LogCAT, J'ai l'erreur suivante :
Code:
1 2 3 4 5
|
06-20 13:24:09.703: E/CursorWindow(1970): need to grow: mSize = 1048576, size = 81, freeSpace() = 14, numRows = 9239
06-20 13:24:09.733: E/CursorWindow(1970): not growing since there are already 9239 row(s), max size 1048576
06-20 13:24:09.733: E/CursorWindow(1970): The row failed, so back out the new row accounting from allocRowSlot 9238
06-20 13:24:09.733: E/Cursor(1970): Failed allocating fieldDir at startPos 0 row 9238 |
voici mes codes
au niveau des opérations CRUD , J'ai ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
@Override
public List<Coordonnees> GetAll() {
// TODO Auto-generated method stub
// Récupération de la liste des coordonnees
Cursor cursor = maBDD.query(CoordonneesOpenHelper.COORDONNEES_TABLE_NAME,
new String[] {
CoordonneesOpenHelper.COLUMN_ID,
CoordonneesOpenHelper.COLUMN_LATITUDE,
CoordonneesOpenHelper.COLUMN_LONGITUDE,
CoordonneesOpenHelper.COLUMN_ALTITUDE,
CoordonneesOpenHelper.COLUMN_PRECISION,
CoordonneesOpenHelper.COLUMN_VITESSE,
CoordonneesOpenHelper.COLUMN_FOURNISSEUR,
CoordonneesOpenHelper.COLUMN_DIRECTION,
CoordonneesOpenHelper.COLUMN_DATE
},
null, null, null,null, null);
return ConvertCursorToListObject(cursor);
}
@Override
public List<Coordonnees> ConvertCursorToListObject(Cursor c) {
// TODO Auto-generated method stub
@SuppressWarnings({ "unchecked", "rawtypes" })
List<Coordonnees> liste = new ArrayList();
// Si la liste est vide
if (c.getCount() == 0)
return liste ;
// position sur le premier item
c.moveToFirst();
// Pour chaque item
do {
Coordonnees coord = ConvertCursorToObject(c);
liste.add(coord);
} while (c.moveToNext());
// Fermeture du curseur
c.close();
return liste;
} |
Au niveau de la classe service , j'ai les opérations suivantes
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
au demarrage , je fais ceci :
public int onStartCommand(Intent intent, int flags, int startId)
{
Toast.makeText(this, "Démarrage du service", Toast.LENGTH_SHORT).show();
final Handler handler = new Handler();
task = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
try{
StoreData();
}catch(SQLiteException e){
e.getCause() ;
}
}
});
}
};
timer.schedule(task, 2000, 100);
// TODO Auto-generated method stub
final Handler hand = new Handler();
stask = new TimerTask() {
public void run() {
hand.post(new Runnable() {
public void run() {
try{
SelectData();
}catch(SQLiteException e){
e.getCause();
e.getLocalizedMessage();
e.getStackTrace();
e.toString();
}
}
});
}
};
time.schedule(stask, 5000, 5000);
return super.onStartCommand(intent, flags, startId);
}
public void SelectData(){
cr = new CoordonneesRepository<CRepository<Coordonnees>>(this);
PrintWriter fic = null ;
cr.Open();
List<Coordonnees> coordonnees = cr.GetAll() ;
try{
FileWriter file = new FileWriter("Coordonnees");
fic = new PrintWriter(file);
for(Coordonnees cd : coordonnees) {
fic.print(cd.getLatitude());
fic.print(cd.getLongitude());
fic.print(cd.getAltitude());
fic.print(cd.getPrecision());
fic.print(cd.getVitesse());
fic.print(cd.getFournisseur());
fic.print(cd.getDirection());
fic.print(cd.getDate());
fic.println();
fic.println();
}
}catch(IOException e){
e.getCause();
}
finally {
if (fic != null){
fic.close();
cr.Close() ;
}
} |
QUE FAIRE ?