我正在尝试将带有一些坐标(lat,long)的文件保存到在线数据库中。我做了如下方法。我从外部存储中读取文件为字符串,然后将其作为latitude arrayList
和longitude arrayList
分割到最后。然后我向数据库发出一个插入语句。它工作正常,但是例如,如果我在文件中有一个坐标(x,y),我在db(1行(x,y)和2行(x,y))中获得双倍,如果我有2个点我在db中得到4行! - 我试了几个小时才知道我做错了什么。我只是陷入了这个! - 非常感谢任何帮助,谢谢
private void fileToDataBase() {
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
if (myFile().isEmpty()) {
boolean delete = (new File(path, fileName)).delete();
if(delete) {
return;
}
} else {
String[] latLngReplaced = myFile().replace("\n", ",").split(",");
List<String> lats = new ArrayList<>();
List<String> lngs = new ArrayList<>();
for (int i = 0; i < latLngReplaced .length; i++) {
if (i % 2 == 0) {
lats.add(latLngErstatt[i]);
} else {
lngs.add(latLngErstatt[i]);
}
}
for (int i = 0, j = 0; i < lats.size() && j < lngs.size(); i++, j++) {
Coordinate c = new Coordinate (lats.get(i), lngs.get(j));
String in = "INSERT INTO coordinate(latitude, longitude) VALUES (" + c.getLatitude() + "," + c.getLongitude() + ")";
List<NameValuePair> nameValuePairs = new ArrayList<>(1);
nameValuePairs.add(new BasicNameValuePair("test", in));
new AsyncTaskSendFila(this).execute(new Pair<>(nameValuePairs, httpClient));
}
}