Ho usato questo codice per dividere il file a seconda dell'ultimo valore presente nella riga.
- Codice: Seleziona tutto
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.File;
public class PartizioneClasse {
public static void main(String[] args) throws Exception {
BufferedReader rd=new BufferedReader (new FileReader("segment.all"));
String linea=null;
int count=1;
while ((linea=rd.readLine())!= null) {
String[] lineadivisa=null;
lineadivisa=linea.split(",");
if (lineadivisa[19]=="6"){
File outputfile=new File("file1.txt");
BufferedWriter out=new BufferedWriter (new FileWriter(outputfile));
out.write(linea+"\r");
}
else {
File outputfile=new File("file2.txt");
BufferedWriter out=new BufferedWriter (new FileWriter(outputfile));
out.write(linea+"\r");
count++;
}
}
}
}
Però non riesce a capire la scritta if (lineadivisa[19]=="6"){.
Questo l'ho capito perchè avevo messo invece del salvataggio nel secondo file avevo messo una System.out . Praticamente per lui tutti i vettori creati hanno nell'ultima posizione valori diversi da "6" (infatti mi stampava per tutte le righe il testo della System.out) mentre in verità non è così.
Poi è sbagliato anche il blocco dell'else perchè non mi scrive, ma quello ho da modificarlo...
Come posso fare allora per creare questi sette file (ogni file è una partizione del file originare divisi a seconda dell'ultimo valore che va da 1 a 7)?
Grazie!
mrblue NumberFormat e BigDecimal se ricordo bene servono per arrotondare e troncare un numero, io invece voglio modificare quel numero del file di testo per fare una normalizzazione con formula v*=(v-vmin)/(vmax-vmin) dove v* è il nuovo valore, v è il vecchio, vmin è il valore minimo della colonna di numeri e vmax il valore massimo così da ottenere tutti i numeri della colonna compresi nell'intervallo [0,1]. In parole povere scorrere il file di testo e modificare tutti i numeri con questa formula.
Ho un ulteriore domanda: è possibile fare questo
http://www.pc-facile.com/forum/viewtopic.php?t=66498 ?
Se è possibile allora modifico i file colonna per colonna e poi riunisco le colonne, sennò devo usare il file con i valori vecchi splittare riga per riga (usando il carattere ",") e poi fare qualcosa del tipo "se è il testo della prima posizione del vettore creato con lo split usa la formula di sopra stando attenti ai valori massimi e minimi che cambiano colonna per colonna (il massimo e il minimo lo prendo per ogni colonna, non di tutto!), se è nella seconda posizione usa la formula con i relativi massimi e minimi ecc...ec..
Spero di essere stata chiara (mica tanto!

).
Grazie!