import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.*;

class ZeilenZaehler {

	public static File readFile(){
		JFileChooser chooser = new JFileChooser();
		chooser.setFileFilter(new DateiFilterTxt());
		int returnVal = chooser.showOpenDialog(null);
		if (returnVal == JFileChooser.APPROVE_OPTION) {
			System.out.println("Dateiname: "
					+ chooser.getSelectedFile().getName());
			return chooser.getSelectedFile();
		}
		else return null;
	}
	
	public static String convert(File file){
		System.out.println("\nKonvertiere File ...\n");
		String outLines="";
		try{
			BufferedReader inLines=new BufferedReader(new FileReader(file));
			String inLine; 
			int counter=1;
			while ((inLine=inLines.readLine())!=null){
				if (!outLines.equals("")) outLines+="\n";
				outLines+=(counter++)+": "+inLine;
			}
			
		}
		catch (Exception e){
			e.printStackTrace();
			System.exit(1);
		}
		System.out.println(outLines);
		return outLines;
	}

	public static void writeFile(String outLines, File fileName){
		System.out.println("Schreibe file...");
		try {
			FileWriter fileWriter=new FileWriter(fileName);
			fileWriter.write(outLines);
			fileWriter.flush();
			fileWriter.close();
			System.out.println("Fertig!");
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	public static void main(String[] args) {
		File inFile=readFile();
		if (inFile==null){
			System.out.println("Kein File gewählt");
			System.exit(0);
		}
		String outLines=convert(inFile);
		writeFile(outLines, inFile);	
		System.exit(0);
	}
}
