(Denk-)Problem mit FileOutputStream ++

christianSch

Grünschnabel
Wäre nett wenn mir jemand helfen könnte:
Irgendwie hab ich das Problem, dass das Prog zwar die Datei bei der Auswahl ob man neue Spalte hinzufügen will mit "n" die Datei erstellt, ABER ES STEHT NIX DRIN................hab schon einiges ausprobiert, aber nix hat geklappt.
Und ich hab auch einen Denkfehler bei der Auswahl von Zahlen zu generieren in einer Range, dass der Wertebereichsbeginn nicht beachtet wird (es wir nur der Wert des Wertebereichsende berücksichtigt) :confused: :confused: :confused:

Code:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Vector;

import properties.MyProperties;

public class Generator 
{
	private String genOrt = "";
	private int genZeile = 0;
	private BufferedReader in;
	private Vector vResultat = new Vector();

	public Generator() throws FileNotFoundException, IOException 
	{
		initProperties();
	}
	
	private void generate() throws IOException 
	{
		String line;
		int spalte = 0;
		boolean wiederhole = false;
		
		while(true) 
		{
			do 
			{
				wiederhole = false;
				System.out.print("Wollen Sie eine Spalte hinzufügen? (j/n) ");
				in = read();
				line = in.readLine();
				if (line.equalsIgnoreCase("j")) 
				{
					spalte++;
				} 
				else 
				{
					if (!line.equalsIgnoreCase("n")) 
					{
						System.out.println("Andere Taste nicht möglich");
						wiederhole = true;
					}
					if (spalte == 0) 
					{
						System.out.println("Spalte muss min. 1 sein");
						wiederhole = true;
					}
					if (line.equalsIgnoreCase("n") && spalte > 0) 
					{
						System.out.println("Speichern...");
						speichern();
						System.exit(0);
					}
				}
			} 
			while (wiederhole);

			do 
			{
				wiederhole = false;
				System.out.println("Wie wollen Sie die Spalte füllen?");
				System.out.println("1. Range");
				System.out.println("2. Zufallszahlen");
				System.out.println("3. Inkrement");
				in = read();
				int auswahl = 0;
				try 
				{
					auswahl = Integer.parseInt(in.readLine());
					if (auswahl > 3 || auswahl < 1) 
					{
						System.out.println("Eingabe inkorrekt");
						wiederhole = true;
					}
				} 
				catch (Exception e) 
				{
					System.out.println("Eingabe inkorrekt");
					wiederhole = true;
				}
				switch (auswahl) 
				{
					case 1 :
						System.out.println("Auswahl nr. 1");
						range();
						break;
					case 2 :
						System.out.println("Auswahl nr. 2");
						zufallzahlen();
						break;
					case 3 :
						System.out.println("Auswahl nr. 3");
						inkrement();
						break;
				}
			} 
		while (wiederhole);
		} //-- Ende while(true)
	} 
	
	private void range() throws IOException 
	{
		int from, to;
		System.out.print("Wertebereichsbeginn : ");
		in = read();
		from = Integer.parseInt(in.readLine());
		System.out.print("Wertebereichsende : ");
		in = read();
		to = Integer.parseInt(in.readLine());
		
		RandomRange random = new RandomRange(from, to);
		int[] spalte = new int[genZeile];
		for(int i = 0; i<genZeile; i++) 
		{
			spalte[i] = random.nextInt();
		}
		vResultat.addElement(spalte);
		print();
	}
	
	private void zufallzahlen() throws IOException 
	{
		NumberGenerator numgen = new NumberGenerator(genZeile);
		int[][] result = numgen.getResult();
		int[] spalte = new int[result.length];
		for(int i = 0; i<result.length; i++)
		{
			spalte[i] = result[i][0];
		}
		
		vResultat.addElement(spalte);
		print();
		
	}
	
	private void inkrement() throws IOException 
	{
		int from;
		System.out.print("Beginn des Hochzählens/ Startwert: ");
		in = read();
		from = Integer.parseInt(in.readLine());
		
		Inkrement ink = new Inkrement(from, genZeile);
		int [][] result = ink.getResult();
		int[] spalte = new int[result.length];
		for(int i = 0; i<result.length; i++)
		{
			spalte[i] = result[i][0];
		}
				
		vResultat.addElement(spalte);
		print();
		
	}
	
	private void print() 
	{
		int[] temp;
		for(int k=0; k<genZeile; k++) 
		{
			for(int i=0; i<vResultat.size(); i++) 
			{
				temp = (int[])vResultat.get(i);				
				System.out.print(temp[k] + "\t\t");
			}
			System.out.println();
		}
		
	}
	
	private void speichern() 
	{
		try
		{
			FileOutputStream fos = new FileOutputStream("testdaten.txt");
			PrintStream output = new PrintStream(fos);
			output.write(vResultat.size());
			output.close();
			System.out.println("Datei testdaten.txt wurde erstellt");
		}
		catch (FileNotFoundException e)
		{
			System.out.println("Schreiben fehlgeschlagen");
		}
	}

	private BufferedReader read() throws IOException 
	{
		return new BufferedReader(new InputStreamReader(System.in));
	}
	
	private void initProperties() throws FileNotFoundException, IOException 
	{
		MyProperties props = new MyProperties();
		genOrt = props.genOrt;
		genZeile = props.genZeile;
	}

	public static void main(String[] args) {
		try 
		{
			Generator gen = new Generator();
			gen.generate();
		} 
		catch (FileNotFoundException e) 
		{
			e.printStackTrace();
		} 
		catch (IOException e) 
		{
			e.printStackTrace();
		}
	}
}


Range:

Code:
import java.util.Random;
public class RandomRange {
	private Random rnd;
	private int rangeStart;
	private int rangeEnd;

	public RandomRange(int rS, int rE) {
		rangeStart = rS;
		rangeEnd = rE;
		rnd = new Random();
	}

	public static void main(String[] args) {
		RandomRange rr = new RandomRange(-50, 50);
		for (int i = 0; i < 100; i++) {
			System.out.println(rr.nextInt());
		}
	}

	public int nextInt() {
		return ((rangeStart - 1) + rnd.nextInt()) % (rangeEnd + 1);
	}
}
 
Zurück