non ero in grado di trovare una libreria che fa la scrittura, anche se ho trovato questa classe di leggere .ov2
file:
package readers;
import java.io.FileInputStream;
import java.io.IOException;
public class OV2RecordReader {
public static String[] readOV2Record(FileInputStream inputStream){
String[] record = null;
int b = -1;
try{
if ((b = inputStream.read())> -1) {
// if it is a simple POI record
if (b == 2) {
record = new String[3];
long total = readLong(inputStream);
double longitude = (double) readLong(inputStream)/100000.0;
double latitude = (double) readLong(inputStream)/100000.0;
byte[] r = new byte[(int) total - 13];
inputStream.read(r);
record[0] = new String(r);
record[0] = record[0].substring(0,record[0].length()-1);
record[1] = Double.toString(latitude);
record[2] = Double.toString(longitude);
}
//if it is a deleted record
else if(b == 0){
byte[] r = new byte[9];
inputStream.read(r);
}
//if it is a skipper record
else if(b == 1){
byte[] r = new byte[20];
inputStream.read(r);
}
else{
throw new IOException("wrong record type");
}
}
else{
return null;
}
}
catch(IOException e){
e.printStackTrace();
}
return record;
}
private static long readLong(FileInputStream is){
long res = 0;
try{
res = is.read();
res += is.read() <<8;
res += is.read() <<16;
res += is.read() <<24;
}
catch(IOException e){
e.printStackTrace();
}
return res;
}
}
Ho trovato anche questo codice PHP per scrivere il file:
<?php
$csv = file("File.csv");
$nbcsv = count($csv);
$file = "POI.ov2";
$fp = fopen($file, "w");
for ($i = 0; $i < $nbcsv; $i++) {
$table = split(",", chop($csv[$i]));
$lon = $table[0];
$lat = $table[1];
$des = $table[2];
$TT = chr(0x02).pack("V",strlen($des)+14).pack("V",round($lon*100000)).pack("V",round($lat*100000)).$des.chr(0x00);
@fwrite($fp, "$TT");
}
fclose($fp);
Non sono sicuro di come si dovrebbe scrivere una classe Java (o di estendere quella precedente) per scrivere il file come fa la funzione PHP, ma si può essere in grado di ottenere alcune informazioni su come il file è codificato da.
Grazie per la risposta. Ma a dire il vero preferirei una libreria pronta per l'uso, testata e supportata, e non scriverne una nuova da zero. – never