Oppure

Loading
09/11/10 20:13
spode
import java.io.*;
import java.util.Scanner;

public class OperatoreSuiFiles {
	
	public String getNomeCartellaInput(){
		Scanner in=new Scanner(System.in);
		String percorsoTot=in.nextLine();
		//fin qua 0k
		return percorsoTot;
	}
	
	public String getNomeCartellaOutput(String percorsoTot){
		String percorsoOutput=percorsoTot.concat(" -getrennt-");
		System.out.println("Il nuovo file sta in "+percorsoOutput);
		//fin qua 0k
		return percorsoOutput;
		}
	
	public void dividiParole(String percorsoTot,String percorsoOutput){
		FileReader reader=null;
		try {
			reader=new FileReader(percorsoTot);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Non posso operare sul file indicato. corrotto? cancellato?");
			this.getNomeCartellaInput();
		}
		Scanner in=new Scanner(reader);
		PrintWriter out=null;
		try {
			out=new PrintWriter(percorsoOutput);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Per qualche motivo è impossibile indicare la stessa cartella di input.\nInserirne un'altra: ");
			percorsoOutput="C:/Documents and Settings/Proprietario/Desktop/file -getrennt-";
		}
		
		/**
		 * @param in stream input
		 * @param out stream output
		 */
//fin qua 0k
		int i=0, j=15;
		while(in.hasNext()){
			String output=percorsoTot.substring(i, j);
			out.println(output);
			i=j;
			j=j+15;
		}
		
		System.out.print("Ho finito!\nScrivi 's' per riprovare: ");
		String risp=in.next();
		if(risp.equalsIgnoreCase("s")){
			this.getNomeCartellaInput();
		}else{
		out.close();
		in.close();
		}
	}
	
	public void saluti(){
		System.out.println("Per piacere, inserisci il percorso del file su cui devo operare: ");
	}
	
}
sbaglio nel pezzo segnalato. io voglio copiare 15 caratteri per poi incollarli sul file di destinazione
aaa
09/11/10 21:30
bububs
Per scrivere i primi 15 caratteri di una frase, io farei così:
String frase="ciao, io faccio parte di questa community";
try{
    FileWriter fstream = new FileWriter("file.txt");
    BufferedWriter out = new BufferedWriter(fstream);
    String risultato=frase.substring(0, 15);
    out.write(risultato);
    out.close();
}
catch (Exception e){
      System.err.println("Error: " + e.getMessage());
}

Questo ti deve servire come spunto, Comunque sono disponibile qualora ci fossero delle domande da parte tua. :k:
aaa
09/11/10 22:54
Numa Pompilio
Dovresti indicare cosa vuoi fare e commentare un attimino i 3 metodi......così come lo hai proposto è un pò un casino
aaa
14/11/10 13:59
spode
ecco:
	import java.util.Scanner;
	import java.io.*;
	import javax.swing.JFileChooser;
	import java.lang.*;
	
public class FileDaDividere {

	public static void main(String[] args) {
		FileDaDividere questo=new FileDaDividere();
		questo.getIstruzioni();
		questo.getPathIn();
		questo.dividere();
		questo.riprovare();
	}
			
		File selectedFile=null;
		File pathOut=null;

		public void getIstruzioni(){
			System.out.println("Per piacere, indica su quale file devo operare...");
		}

		public void getPathIn(){
		JFileChooser selettore=new JFileChooser();
		if(JFileChooser.APPROVE_OPTION==selettore.showOpenDialog(null)){
		selectedFile=selettore.getSelectedFile();
	}else{
		this.getIstruzioni();
		}
	}

		public File getPathOut(){
			String strpathOut=selectedFile.getPath().concat(" -getrennt-");
			pathOut=new File(strpathOut);
			try {
				pathOut.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
				System.out.println("Non posso creare il file di output...");
				this.getIstruzioni();
			}
			return pathOut;
	}

		public void dividere(){
		FileReader reader=null;
		try {
			reader = new FileReader(selectedFile);
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
			System.out.println("Non posso aprire o leggere il file che hai indicato...");
			this.getIstruzioni();
		}
		Scanner in=new Scanner(reader);
		PrintWriter out=null;
		try {
			out = new PrintWriter(this.getPathOut());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Non posso creare il file di output...");
			this.getIstruzioni();
		}
				
			String memorizzata="";
				String parola="";
			for(;;){
				if(in.hasNext()){
				memorizzata=in.next();
				parola=parola.concat(" ").concat(in.next());
			if(parola.length()<=15){
				out.println(parola);
			}else{
				out.println(parola.replace(memorizzata, ""));
				out.print(memorizzata.concat(" "));
				out.println(parola.substring(16));
			}
			}
				else{
					break;
				}
			}

//il blocco qua sopra è quello sbagliato: io voglio copiare nel nuovo documento un testo, però così: 15 caratteri ogni riga, ma se le parole devono essere spezzettate no: l'ultima parola si cancella e si aggiunge alla riga dopo
		
		System.out.println(pathOut);

		System.out.println("\b\nHo finito! Il nuovo file si trova in\n"+pathOut);
		this.closeStreams(in,out);
		this.riprovare();
	}

		public void closeStreams(Scanner in, PrintWriter out){
		out.close();
		in.close();
	}

		public int riprovare(){
		System.out.print("Scrivi 's' per riprovare");
		Scanner in=new Scanner(System.in);
		String rispo=in.next();
		if(rispo.equalsIgnoreCase("s")){
		this.getPathIn();
		}
		return 0;
	}

}
aaa