Salve ragazzi,
volevo chiedervi un grosso aiuto essendo alle prime armi con Java.
Mi hanno "passato" una routine che "dovrebbe" trasformare un array multidimensionale di double in un array monodimensionale di bytes, costituito dal formato:
byte(spazio)byte;(si va daccapo e si ricomincia).
Come posso completare questo programmino per eseguirlo e vedere se effettivamente fa ciò che voglio?
Cosa devo mettere nel main?
Grazie
Il codice è il seguente ed è commentato.
package spectra.Util;
import java.util.*;
public class DataSpectrumFile {
private double[][] rawSpectrum; //definisce array bidimensionale di double.
private byte[] spectrumFile; //definisce array di byte, che è il formato di memorizzazione
public DataSpectrumFile(byte[] spectrumFile) throws Exception { //costruttore
this.spectrumFile = spectrumFile;
}
public byte[] toBytes() { //funzione in bytes, trasforma il double[][] in un array di bytes detto data.
Vector temp = new Vector(100000); //vettore di oggetti con capacità iniziale assegnata
byte[] data;
byte middleRow = ' ';
byte endRow = ';';
byte[] tempByte1;
for (int i = 0; i < rawSpectrum.length; i++) { //legge scorrendo tutte le righe della matrice rawspectrum
tempByte1 = Double.toString(rawSpectrum[i][0]).getBytes(); //getbytes restituisce in byte il valore indicizzato da rawspectrum,Double.toString restituisce una rappresentazione in stringa dell'oggetto double.
for (int j = 0; j < tempByte1.length; j++) {
temp.addElement(Byte.valueOf(tempByte1[j])); //Vector è un array di oggetti(di byte) di dimensione variabile,add.Element aggiunge lo specifico componente alla fine del vettore,incrementando la lunghezza di 1
}
temp.addElement(Byte.valueOf(middleRow));
tempByte1 = Double.toString(rawSpectrum[i][1]).getBytes(); //lo stesso discorso passa alla seconda colonna
for (int j = 0; j < tempByte1.length; j++) {
temp.addElement(Byte.valueOf(tempByte1[j]));
}
temp.addElement(Byte.valueOf(endRow));
}
data = new byte[temp.size()];
for (int i = 0; i < temp.size(); i++) {
data[i] = (((Byte) temp.elementAt(i)).byteValue());
}
return data;
}