codice:
import java.io.*;

import javax.swing.JFileChooser;
import java.util.Scanner;

public class TxtTrenner {
	
	File pathIn=null;
	File pathOut=null;
	FileReader reader=null;
	Scanner inp=null;
	PrintWriter out=null;
		
	public void setPathIn(){
		pathIn=null;
		pathOut=null;
		reader=null;
		inp=null;
		out=null;
		JFileChooser selectedFile=new JFileChooser();
		if(JFileChooser.APPROVE_OPTION==selectedFile.showOpenDialog(null)){
			pathIn=selectedFile.getSelectedFile();
			System.out.println(pathIn.getPath());
			//ora ho il percorso del file
		}
		else{
			this.getIstruzioni();
		}
	}
	
	public File getPathIn(){
		return pathIn;
		
	}
	
	public void setPathOut() throws IOException{
		String strpathOut=pathIn.getPath().concat(" -getrennt-");
		pathOut=new File(strpathOut);
		pathOut.createNewFile();
		//fino qua 0k
	}
	
	public File getPathOut(){
		return pathOut;
	}
	
	public void getIstruzioni(){
		System.out.println("Seleziona il file su cui devo operare...");
		}

	public void dividere(){
		try {
			reader=new FileReader(this.getPathIn());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Hai cancellato il file su cui devo operare o è corrotto...");
			this.riprovare();
		}
		try {
			out=new PrintWriter(this.getPathOut());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Non posso operare come voglio sul pc. Cambia le impostazioni di sistema e riprova.");
			this.riprovare();
		}
		inp=new Scanner(reader);
		
		int j=15;
		int i=0;
		while(inp.hasNext()){
			String daCopiare=inp.toString();
			daCopiare=daCopiare.substring(i,j);
			out.println(daCopiare);
			i=j;
			j=j+15;
		}
		System.out.println("Ho finito. Puoi trovare il nuovo testo in\n"+this.getPathOut());
	}
	
	public void riprovare(){
		Scanner in=new Scanner(System.in);
		System.out.print("Scrivi 's' per riprovare: ");
		String risp=in.next();
		if(risp.equalsIgnoreCase("s")){
			this.getIstruzioni();
		}else{
			System.out.println("Spero di essere stato utile. Arrivederci!");
			this.closeStreams();
		}
	}
	
	public void closeStreams(){
		inp.close();
		out.close();
	}
	
}
io penso di sbagliare da qualche parte qua
codice:
		try {
			reader=new FileReader(this.getPathIn());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Hai cancellato il file su cui devo operare o è corrotto...");
			this.riprovare();
		}
		try {
			out=new PrintWriter(this.getPathOut());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Non posso operare come voglio sul pc. Cambia le impostazioni di sistema e riprova.");
			this.riprovare();
		}
		inp=new Scanner(reader);
		
		int j=15;
		int i=0;
		while(inp.hasNext()){
			String daCopiare=inp.toString();
			daCopiare=daCopiare.substring(i,j);
			out.println(daCopiare);
			i=j;
			j=j+15;
		}
vorrei che il programma copi i caratteri di un file di testo a 15 a 15, finchè possibile, e li copi in pathOut (altro file)