package com.mendhak.gpslogger.loggers; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.util.Date; import com.mendhak.gpslogger.common.Utilities; import android.location.Location; public class CsvLogger implements ILogger { private File file; private boolean useSatelliteTime; protected final String name = "CSV"; private String user; public CsvLogger(String user,File file, boolean useSatelliteTime) { this.file = file; this.user = user; this.useSatelliteTime = useSatelliteTime; } // @Override public void write(Location loc) throws Exception { if (!file.exists()) { file.createNewFile(); FileOutputStream writer = new FileOutputStream(file, true); BufferedOutputStream output = new BufferedOutputStream(writer); String header = "user,time,lat,lon,elevation,accuracy,bearing,speed\n"; output.write(header.getBytes()); output.flush(); output.close(); } FileOutputStream writer = new FileOutputStream(file, true); BufferedOutputStream output = new BufferedOutputStream(writer); Date now; if (useSatelliteTime) { now = new Date(loc.getTime()); } else { now = new Date(); } String dateTimeString = Utilities.GetIsoDateTime(now); String outputString = String.format("%s,%f,%f,%f,%f,%f,%f\n", this.user, dateTimeString, loc.getLatitude(), loc.getLongitude(), loc.getAltitude(), loc.getAccuracy(), loc.getBearing(), loc.getSpeed()); output.write(outputString.getBytes()); output.flush(); output.close(); } // @Override public void annotate(String description, Location loc) throws Exception { // TODO Auto-generated method stub } // @Override public String getName() { return name; } public void annotate(String name, String description, Location loc) throws Exception { // TODO Auto-generated method stub } }