Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    258

    Trasformare file in array di byte

    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;
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Ho spostato la domanda nel forum dedicato a Java.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.