Android читает CSV
Я сделал простое приложение, которое будет регистрировать пользовательский ввод из editText и поместит его в CSV на моей SDCard. Теперь моя проблема заключается в чтении этого csv и создании его в качестве переменной для следующего действия в моем приложении.
Вот моя основная деятельность:
package com.willardcuizon.differentialgps;
import java.io.File;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Main extends Activity implements OnClickListener{
Button start;
EditText lat;
EditText lon;
LocationListener loclist;
CSVFileWriter csv;
StringBuffer filePath;
File file;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start = (Button) findViewById(R.id.button1);
start.setOnClickListener(this);
lat = (EditText) findViewById(R.id.editText1);
lon = (EditText) findViewById(R.id.editText2);
filePath = new StringBuffer();
filePath.append("/sdcard/surveyedGPS.csv");
file = new File(filePath.toString());
csv = new CSVFileWriter(file);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId()==R.id.button1){
LocationManager locman = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
if(locman.isProviderEnabled(LocationManager.GPS_PROVIDER)){
Toast.makeText( getApplicationContext(), "GPS is Enabled.", Toast.LENGTH_SHORT ).show();
csv.writeHeader(lat.getText().toString());
csv.writeHeader(lon.getText().toString());
}
else{
Toast.makeText( getApplicationContext(), "GPS is Disabled.Please enable GPS", Toast.LENGTH_SHORT ).show();
}
}
}
}
А вот мой класс CSVWriter:
package com.willardcuizon.differentialgps;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class CSVFileWriter {
private PrintWriter csvWriter;
private File file;
public CSVFileWriter(File file) {
this.file = file;
}
public void writeHeader(String data) {
try {
if (data != null) {
csvWriter = new PrintWriter(new FileWriter(file, true));
csvWriter.print(",");
csvWriter.print(data);
csvWriter.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2 ответа
Решение
Вы можете открыть свой CSV-файл как файл и попытаться читать построчно, а затем разделить переменные запятыми и использовать их для следующей операции. Посмотрите ответ здесь: