Fehler im Code aber wo?

Status
Nicht offen für weitere Antworten.

anfänger15

Bekanntes Mitglied
Hallo

bin gerade dabei ein FileSplitter zu schreiben, der geht auch wunderbar allerdings hab ich mir jetzt diese methode geschrieben damit ich in meiner JProgressBar den aktuellen Zustand ausgeben kann. Da funktioniert aber etwas nicht

hier mal mein code:
Code:
	class SplitThread extends Thread {

	public void run() {
		progress.start();

		int i = 1;
		long pos = 0;

		try {
			PrintWriter filenamen = new PrintWriter(new FileWriter(outDatei
					+ "/" + f.getName() + ".split"));
			PrintWriter dateiende = new PrintWriter(new FileWriter(outDatei
					+ "/dateityp.SF"));
			dateiende.print((f.getName()));
			dateiende.close();

			FileOutputStream out = null;
			FileInputStream in = new FileInputStream(f);
			FileChannel inChannel = in.getChannel();
			inChannel.position(pos);

			ByteBuffer buffer = ByteBuffer.allocate(8192);

			long größe1 = größe;

			while (pos < f.length()) {
				out = new FileOutputStream(new File(outDatei + "/SplitFile "
						+ i + ".SF"));

				int count = inChannel.read(buffer);
				while ((count > -1) && (!isInterrupted())
						&& größe1 >= (inChannel.position())) {

					if (buffer.hasArray()) {

						out.write(buffer.array(), 0, count);
						buffer.clear();

						count = inChannel.read(buffer);
					}

					prozessBarStatus = (int) ((100 / (((double) (f.length()))) * ((double) inChannel
							.position())));
					System.out.println(pos);

				}
				größe1 = größe1 + größe;
				pos = pos + größe;
				filenamen.println("SplitFile " + i + ".SF");
				i++;

				out.flush();
				out.close();
			}
			in.close();
			inChannel.close();
			filenamen.close();

		} catch (IOException e) {
		}
		ok.setEnabled(true);
		splitthread.interrupted();

	}

Irgend was ist da noch falsch, weil pro erstellter datei 0,1MB fehlt.
Ich denke mal das ich irgendwo die falschen zahlen nehme.

Das hier funktioniert:
Code:
    int count = inChannel.read(buffer);
    while((count > -1) && (! isInterrupted())&& größe1 >= (inChannel.position())){
    	
   	if(buffer.hasArray()){

  	 
       out.write(buffer.array(),0,count);
       buffer.clear();
       
         count = inChannel.read(buffer);
  }

Ich will ja aber mehrere Dateien erstellen und das geht nicht(bzw. nicht vollständig)

wäre net wenn jemand den fehler entdeckt und hilft

danke

[/edit] lesbarkeit verbessert
 

NTB

Bekanntes Mitglied
Wenn ich das richtig sehe, fehlt Dir das Ende, weil Du immer 8196 als Buffergröße hast und abbrichst, sobald Du -1, also Streamende einliest. D.h. wenn der letzte Buffer gefüllt werden soll, und im Stream nur noch 5000 statt 8196 Bytes übrig sind, dann schreibst Du diese 5000 Bytes gar nicht mehr. Kann das sein? Bin mir grad nicht ganz sicher, ist aber ein typisches Problem

P.S.: Äh, wäre schön, wenn Du Deinen Code etwas besser formatieren könntest, das nächste Mal :) Dadurch kann man ihn leichter lesen
Zumindest mit Eclipse kann man das automatisch machen lassen.
 

anfänger15

Bekanntes Mitglied
Also mal ein beispiel:

Ich will eine 3.47MB große datei in 1MB große dateien splitten.
Dann bekomme ich 4 Dateien und bei der ersten datei (das stimmt soweit) eine datei mit 1MB und dann noch 2 dateien mit 0,99MB, die eigentlich auch 1MB haben sollten und noch die letzte datei mit 478KB.

Das heißt doch wenn ich das richtig sehe das die erste und letzte datei die richtige größe haben, nur bei allen dateien dazwichen stimmt es nicht,oder?

danke
 

Wildcard

Top Contributor
Redest du von MB oder MiB?
Ein MB sind 1 000 000 bytes, ein MiB (das zeigen die meisten Betriebssysteme an) sind hingegen 1 048 576 Bytes.
 

NTB

Bekanntes Mitglied
hmm ok, dann splitte doch einfach mal eine 13 byte grosse textdatei in 5 byte grosse teile auf und schau, was passiert...
 

anfänger15

Bekanntes Mitglied
ich rede dann wohl von MiB

Wenn ich die textdatei in 5byte große stücke splitte passiert gar nichts.Erst wenn ich das
Code:
    ByteBuffer buffer = ByteBuffer.allocate(8192);

durch das(also mit 1)
Code:
    ByteBuffer buffer = ByteBuffer.allocate(1);
ändere werden3 dateien erstellt.
Die erste (wie schon vorher richtig) mit 5 byte.Die 2 datei mit 4 byte und die letzte datei mit 2 byte.Es fehlen also 2byte
???:L

wär echt supi wenn ihr den fehler findet

[/Edit]
Die textdatei die ich gesplittet habe hatte den inhalt

1234567890123

Die erste splittdatei hatte den inhalt

12345

die 2 splittdatei

7890

und die 3 splittdatei

23

Es fehlt also bei jeder weiteren splittdatei(außer der 1 datei) der anfang(mit der größe des bufferes).

[/Edit]

NTB ich denke du hattest recht und ich schreib den lezten buffer nicht mehr wenn er nicht voll ist.

Wie mache ich das??
 

NTB

Bekanntes Mitglied
äh, wenn Du den letzten Buffer nicht schreibst, dann fehlt doch nicht der Anfang eines Teils.

Ich finde es ein bischen schwer, Dir zu helfen, weil Dein Code schlecht formatiert ist, weil Deine Variablen nicht sehr aussagekräftig sind (größe1, größe, häää?) und weil er so nicht ausführbar ist.

mach mal aus
Code:
    int count = inChannel.read(buffer);
    while((count > -1) && (! isInterrupted())&& größe1 >= (inChannel.position())){
       
      if(buffer.hasArray()){

     
       out.write(buffer.array(),0,count);
       buffer.clear();
       
         count = inChannel.read(buffer);
  }

das hier:
Code:
                while (((count =inChannel.read(buffer)) > -1) && (!isInterrupted())
                        && größe1 >= (inChannel.position())) {

                    if (buffer.hasArray()) {

                        out.write(buffer.array(), 0, count);
                        buffer.clear();

                    }

                }


klappt das?
 

anfänger15

Bekanntes Mitglied
Ok hab den code jetzt mal besser formatiert. Nicht ausführbar ???:L was meinst du damit?

Danke für dein code aber geht leider immer noch nicht. Es gibt immer noch das gleiche Problem.

Vielleicht ist es deutlicher wenn ich es mal mit einem ByteBuffer mit der größe 2 beschreibe.

Dann wird wenn ich die 13byte größe datei in 5byte dateien splitte

eine datei mit 4byte und dem inhalt

1234 erstellt. Es fehlt also ein zeichen.

bei der 2 datei wird auch eine datei mit 4byte erstellt und dem inhalt 7890. Es fehlt auch ein zeichen(die zahl 6).

Bedeutet meiner meinung nach, dass der ByteBuffer mit den zahlen 5,6 (der letzte) nicht in die jeweiligen dateien geschrieben wurde.

So ist es auch bei der letzten datei die 1byte groß ist und den inhalt

3 hat (eigentlich sollte sie aber den inhalt 123 haben)

hat es fehlt also wieder der ByteBuffer (ich denke mal der wurde bereits bei der datei 2 gelesen aber nicht geschrieben. Deshalb fehlt bei der 3 datei der anfang und nicht der schluss, da der bytebuffer schon bei datei 2 gelesen wurde, kann aber auch nicht stimmen) :bahnhof:

trotzdem danke an alle die mir bisher geholfen haben.
 
G

Guest

Gast
hier mal der gesamte Code der hoffentlich ausführbar ist zum testen

Code:
import java.io.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.lang.Exception;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.nio.ByteBuffer;

class Split extends JFrame {

	JProgressBar prozessBar;

	JButton ok;

	JTextField ladenDateigröße;

	JTextField DateiAnzahl;

	JTextField ladenDatei;

	JTextField speichernDateigröße;

	JTextField speichernVerzeichnis;

	String dateiname;

	JPanel frame;

	boolean split = true;

	File f;

	String outDatei;

	long größe;

	String ladeort;

	String speicherort;

	String verzeichnis;

	int prozessBarStatus = 0;

	progressBaranzeige progress = new progressBaranzeige();

	SplitThread splitthread = new SplitThread();

	VerbindenThread verbinden = new VerbindenThread();

	class ActionLauscher implements ActionListener {

		public void actionPerformed(ActionEvent e) {
			String event = e.getActionCommand();

			if (event.equals("OK")) {

				if (split) {
					ok.setEnabled(false);
					java.text.DecimalFormat df = new java.text.DecimalFormat(
							"0.00");
					f = new File(ladenDatei.getText());

					double int1 = (((double) (f.length())))
							/ (Double
									.parseDouble(speichernDateigröße.getText()));
					DateiAnzahl.setText(df.format(Math.ceil(int1)));
					outDatei = speichernVerzeichnis.getText();
					größe = ((Long.parseLong(speichernDateigröße.getText())));
					splitthread.start();

				}
				if (!split) {
					ok.setEnabled(false);
					ladeort = verzeichnis;
					speicherort = speichernVerzeichnis.getText();
					outDatei = ladenDatei.getText();
					verbinden.start();

				}

			}

			if (event.equals("split")) {
				split = true;

			}
			if (event.equals("verbinden")) {
				split = false;
			}

			if (event.equals("beenden")) {

				splitthread.interrupted();
				System.exit(0);
			}
		}
	}

	Split(String title) {
		super(title);
		frame = new JPanel();
		frame.setLayout(new GridLayout(5, 1));
		JPanel north = new JPanel();
		JPanel middle1 = new JPanel();
		middle1.setLayout(new BorderLayout());
		JPanel middle1in = new JPanel();
		middle1in.setLayout(new BorderLayout());
		JPanel middle2 = new JPanel();
		JPanel middle3 = new JPanel();
		JPanel south = new JPanel();
		south.setLayout(new BorderLayout());
		JPanel south1 = new JPanel();

		prozessBar = new JProgressBar();
		prozessBar.setStringPainted(true);
		prozessBar.setValue(0);

		javax.swing.border.TitledBorder titledBorder1 = new javax.swing.border.TitledBorder(
				"Modus wählen");
		north.setBorder(titledBorder1);
		javax.swing.border.TitledBorder titledBorder2 = new javax.swing.border.TitledBorder(
				"Splitfilegröße festlegen");
		middle1.setBorder(titledBorder2);
		javax.swing.border.TitledBorder titledBorder3 = new javax.swing.border.TitledBorder(
				"Datei wählen");
		middle2.setBorder(titledBorder3);
		javax.swing.border.TitledBorder titledBorder4 = new javax.swing.border.TitledBorder(
				"Speicherort wählen");
		middle3.setBorder(titledBorder4);

		ladenDatei = new JTextField(20);
		speichernVerzeichnis = new JTextField(20);
		JLabel ladenDateiText = new JLabel("Datei wählen: ");
		JLabel speichernVerzeichnisText = new JLabel("Speicherort wählen: ");

		JButton ladenDateiButton = new JButton("...");
		JButton speichernDateiButton = new JButton("...");

		ladenDateigröße = new JTextField(10);
		DateiAnzahl = new JTextField(10);
		speichernDateigröße = new JTextField(10);
		ladenDateigröße.setEnabled(false);
		DateiAnzahl.setEnabled(false);

		ok = new JButton("OK");
		JButton abbrechen = new JButton("beenden");
		JRadioButton split = new JRadioButton("split");
		split.setSelected(true);
		JRadioButton verbinden = new JRadioButton("verbinden");

		ladenDateiButton.addActionListener(new ActionLauscher() {
			public void actionPerformed(ActionEvent e) {
				String event = e.getActionCommand();

				laden();

			}
		});
		speichernDateiButton.addActionListener(new ActionLauscher() {
			public void actionPerformed(ActionEvent e) {
				speichern();
			}
		});
		ok.addActionListener(new ActionLauscher());
		abbrechen.addActionListener(new ActionLauscher());
		split.addActionListener(new ActionLauscher());
		verbinden.addActionListener(new ActionLauscher());

		ButtonGroup t = new ButtonGroup();
		JLabel ladenDateigrößeLabel = new JLabel("Dateigröße:");
		JLabel speichernDateigrößeLabel = new JLabel("Splitfile Dateigröße:");
		JLabel DateiAnzahlLabel = new JLabel("Anzahl:");
		JLabel einheit1 = new JLabel("MB");
		JLabel einheit2 = new JLabel("MB");

		JPanel links = new JPanel();
		links.setLayout(new GridLayout(3, 1));
		JPanel mitte = new JPanel();
		mitte.setLayout(new GridLayout(3, 1));
		JPanel rechts = new JPanel();
		rechts.setLayout(new GridLayout(3, 1));

		t.add(split);
		t.add(verbinden);
		north.add(split);
		north.add(verbinden);
		links.add(ladenDateigrößeLabel);
		mitte.add(ladenDateigröße);
		rechts.add(einheit1);
		links.add(speichernDateigrößeLabel);
		mitte.add(speichernDateigröße);
		rechts.add(einheit2);
		links.add(DateiAnzahlLabel);
		mitte.add(DateiAnzahl);
		middle1in.add(links, BorderLayout.WEST);
		middle1in.add(mitte, BorderLayout.CENTER);
		middle1in.add(rechts, BorderLayout.EAST);
		middle1.add(middle1in, BorderLayout.CENTER);
		middle2.add(ladenDateiButton);
		middle2.add(ladenDatei);
		middle3.add(speichernDateiButton);
		middle3.add(speichernVerzeichnis);
		south1.add(ok);
		south1.add(abbrechen);
		south.add(prozessBar, BorderLayout.NORTH);
		south.add(south1, BorderLayout.SOUTH);

		frame.add(north);
		frame.add(middle1);
		frame.add(middle2);
		frame.add(middle3);
		frame.add(south);

		getContentPane().add(frame);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}

	public void laden() {
		if (split) {
			JFileChooser laden = new JFileChooser();
			laden.setMultiSelectionEnabled(false);

			if (laden.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) {
				File name = laden.getSelectedFile();
				dateiname = name.getAbsolutePath();

				ladenDatei.setText(dateiname);

				java.text.DecimalFormat df = new java.text.DecimalFormat("0.00");
				File splitFile = new File(ladenDatei.getText());
				ladenDateigröße.setText(df
						.format(((double) (splitFile.length()))));
			}

		}

		if (!split) {
			JFileChooser laden = new JFileChooser();
			laden.setMultiSelectionEnabled(false);
			laden.setFileFilter(new DateiFilter());

			if (laden.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) {
				File name = laden.getSelectedFile();
				dateiname = name.getAbsolutePath();
				File name1 = laden.getCurrentDirectory();
				verzeichnis = name1.getAbsolutePath();

				ladenDatei.setText(dateiname);

				java.text.DecimalFormat df = new java.text.DecimalFormat("0.00");

			}

		}

	}

	public void speichern() {
		JFileChooser speichern = new JFileChooser();

		speichern.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

		if (speichern.showSaveDialog(frame) == JFileChooser.APPROVE_OPTION) {

			File name = speichern.getSelectedFile();
			dateiname = name.getAbsolutePath();
			speichernVerzeichnis.setText(dateiname);
		}

	}

	class DateiFilter extends javax.swing.filechooser.FileFilter {
		public String getDescription() {
			return "SplitFile (*.split)";
		}

		public boolean accept(File file) {
			if (file.isDirectory())
				return true;
			else if (file.getName().endsWith(".split"))
				return true;
			else
				return false;
		}
	}

	public static void main(String[] args) {
		Split fenster = new Split("split");
		fenster.setSize(320, 450);
		fenster.setVisible(true);

	}

	class progressBaranzeige extends Thread {

		public void run() {
			try {

				while (prozessBarStatus != 100) {
					prozessBar.setValue(prozessBarStatus);

					progress.sleep(50);

				}
			} catch (InterruptedException e) {
			}
		}
	}

	class SplitThread extends Thread {

		public void run() {
			progress.start();

			int i = 1;
			long pos = 0;

			try {
				PrintWriter filenamen = new PrintWriter(new FileWriter(outDatei
						+ "/" + f.getName() + ".split"));
				PrintWriter dateiende = new PrintWriter(new FileWriter(outDatei
						+ "/dateityp.SF"));
				dateiende.print((f.getName()));
				dateiende.close();

				FileOutputStream out = null;
				FileInputStream in = new FileInputStream(f);
				FileChannel inChannel = in.getChannel();
				inChannel.position(pos);

				ByteBuffer buffer = ByteBuffer.allocate(2);

				long größe1 = größe;

				while (pos < f.length()) {
					out = new FileOutputStream(new File(outDatei
							+ "/SplitFile " + i + ".SF"));

					int count;

					while (((count = inChannel.read(buffer)) > -1)
							&& (!isInterrupted())
							&& größe1 >= (inChannel.position())) {

						if (buffer.hasArray()) {

							out.write(buffer.array(), 0, count);
							buffer.clear();

						}

						prozessBarStatus = (int) ((100 / (((double) (f.length()))) * ((double) inChannel
								.position())));

					}

					größe1 = größe1 + größe;
					pos = pos + größe;

					filenamen.println("SplitFile " + i + ".SF");
					i++;

					out.flush();
					out.close();
				}
				in.close();
				inChannel.close();
				filenamen.close();

			} catch (IOException e) {
			}
			ok.setEnabled(true);
			splitthread.interrupted();
			splitthread.stop();

		}
	}

	class VerbindenThread extends Thread {

		public void run() {

		}
	}
}

findet niemand den fehler? :bahnhof:

danke
 

anfänger15

Bekanntes Mitglied
Also ich weiß mittlerweile, dass ich wohl bei jeder datei die beim splitten entsteht den letzten ByteBuffer nicht schreibe. Woran liegt das? Ist in meiner while schleife ein fehler?
 
S

SlaterB

Gast
cool ist ja
Double.parseDouble(speichernDateigröße.getText()));
und dann wenig später
((Long.parseLong(speichernDateigröße.getText()))

----
überhaupt ist deine ganze GUI total nerviger Schrott, wenn die Grundfunktionalität noch nicht geht,
TESTEN in einem KONSOLENPROGRAMM mit vorgegebenen Werten,
z.B.
Code:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

class Split
{

    public static void main(String[] args)
        throws Exception
    {

        int i = 1;
        long pos = 0;


        File f = new File("c:/temp/test.txt");
        PrintWriter filenamen = new PrintWriter(new FileWriter("c:/temp/namen.txt"));
        PrintWriter dateiende = new PrintWriter(new FileWriter("c:/temp/ende.SF"));
        dateiende.print((f.getName()));
        dateiende.close();

        FileOutputStream out = null;
        FileInputStream in = new FileInputStream(f);
        FileChannel inChannel = in.getChannel();
        inChannel.position(pos);

        ByteBuffer buffer = ByteBuffer.allocate(2);

        long größe = 8;
        long größe1 = größe;
        System.out.println("f.length: " + f.length());
        while (pos < f.length())
        {
            out = new FileOutputStream(new File("c:/temp/SplitFile " + i + ".txt"));

            int count;
            System.out.println("neue Datei: " + i + ", pos: " + pos);
            while (größe1 >= inChannel.position() && (count = inChannel.read(buffer)) > -1)
            {
                if (buffer.hasArray())
                {
                    out.write(buffer.array(), 0, count);
                    System.out.println("write: " + count);
                    buffer.clear();
                }
            }
            buffer.clear();
            größe1 = größe1 + größe;
            pos = pos + größe;

            filenamen.println("SplitFile " + i + ".txt");
            i++;

            out.flush();
            out.close();
        }
        in.close();
        inChannel.close();
        filenamen.close();

    }
}
was bei ByteBuffer und FileChannel alles schiefgehen kann, kann ich nicht so genau sagen,
bei mir half aber, nach der inneren while-Schleife ein
buffer.clear();
einzufügen,


edit:
noch ein böser Fehler:
while (((count = inChannel.read(buffer)) > -1)
&& (!isInterrupted())
&& größe1 >= (inChannel.position())) {

hier werden bytes gelesen, aber dann nicht verarbeitet, da die zweite/ dritte Bedingung nicht erfüllt ist
-> Bedingungen vertauschen!

damit ergibt sich vielleicht auch der Teilfehler weiter oben (buffer.clear hinter while-Schleife), dürfte dann nicht mehr nötig sein, schadet aber auch nicht?
 

anfänger15

Bekanntes Mitglied
Ich finde es ein bischen schwer, Dir zu helfen, weil Dein Code schlecht formatiert ist, weil Deine Variablen nicht sehr aussagekräftig sind (größe1, größe, häää?) und weil er so nicht ausführbar ist.

Deshalb hab ich den ganzen Code gepostet


Danke für dein Code aber mir geht er nicht wenn ich dort eine 13byte größe datei splitte erhalte ich eine 8byte große datei und eine 3 byte große.
Fehlen da nicht 2 byte ???:L

Wäre nett wenn das noch irgendjemand hinbekommt
danke
 

anfänger15

Bekanntes Mitglied
ok durch tauschen der bedingungen in der schleife geht es jetzt :applaus:

cool ist ja
Double.parseDouble(speichernDateigröße.getText()));
und dann wenig später
((Long.parseLong(speichernDateigröße.getText()))

nehme ich nicht das Double parseDouble um die Prozent in der JProgressBar zu berechnen und das 2 damit ich die größe der datei hab um sie dann beim splitten hochzuzählen ???:L

danke an alle die mir geholfen haben.
 

Wildcard

Top Contributor
So ist's wohl besser:
Code:
public class BufferExample {
	public static void main(String[] args) throws IOException {
		split(new File("test.txt"), 5);
	}

	private static void split(File file, int maxbytes) throws IOException {
		FileChannel in = new FileInputStream(file).getChannel();
		int counter = 1;
		int bytes = 0;
		while(bytes<file.length())
		{
			FileChannel out = new FileOutputStream(new File(file.getAbsolutePath()+counter)).getChannel();
			counter++;
			long toWrite = Math.min(maxbytes, file.length()-bytes);
			in.transferTo(bytes, toWrite, out);
			bytes+=toWrite;
			out.force(false);
			out.close();
		}
		in.close();
	}
}
:wink:
 

anfänger15

Bekanntes Mitglied
ja so hatte ich das alles auch schon bis ich gemerkt hab das ich z.B. bei einer 400mb großen datei ewig warten muss bis man das Programm wieder schließen konnte.

siehe hier

aber trotzdem danke
 

Wildcard

Top Contributor
Da ändert der ByteBuffer aber genau nichts. Das ist nur ein zusätzlicher Umweg.
Wenn du dein Programm tatsächlich 'hart' beenden willst: System.exit(0);
 
S

SlaterB

Gast
> nehme ich nicht das Double parseDouble um die Prozent in der JProgressBar zu berechnen und das 2 damit ich die größe der datei hab um sie dann beim splitten hochzuzählen

dann mache
long length = parseLong(text);
double lengthAsLong = (double) length;

oder ähnliches, aber nicht zweimal parsen
 

anfänger15

Bekanntes Mitglied
SlaterB Ok mach ich

Wildcard ja aber während transfarTo ausgeführt wird kann ich ja nicht System.exit(0) aufruhfen oder?
Somit kann man das Programm doch immer nur dann beenden wenn Split eine neue datei erstellt oder hab ich da was falsch verstanden ???:L
 
S

SlaterB

Gast
ob dein ActionListener reagiert oder nicht und du damit System.exit(0) aufrufen kannst,
hängt doch nur davon ab, ob du den Datei-Code in einen Thread nebenläufig ausführst oder ohne Thread die GUI blockierst,

welchen Code du zum Dateisplitten verwendest, ist schnuppe,
also versuchs ruhig mit dem schöneren von Wildcard wenns klappt
 

anfänger15

Bekanntes Mitglied
Ok danke für die antworten ich hab es jetzt mal mit meiner methode gelassen, da es mich jetzt schon rießig freut das es läuft. Wildcards methode ist zwar besser aber da bekomme ich es nicht hin das das Programm beendet wird also lass ich es jetzt einfach mal so weil jetzt läuft es ja dank eurer hilfe :applaus:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
B Fehler im Java-Code Allgemeine Java-Themen 4
D Fehler im Java Code Allgemeine Java-Themen 22
H Installationsprobleme - Fehler Code 2755. 1624 Allgemeine Java-Themen 33
T Fehler in code/dringend Allgemeine Java-Themen 6
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
B Fehler bei einem Programm Allgemeine Java-Themen 10
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
S Ganzes Programm "stucked" - JVM-Fehler? Allgemeine Java-Themen 2
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
J Compiler-Fehler .nextLine fehler Allgemeine Java-Themen 3
S Java Fehler bei Konsolenprogramm Allgemeine Java-Themen 2
N Was ist ein Fehler (Requirement-Engineering) Allgemeine Java-Themen 3
C System.out.print("") Compiler Fehler Allgemeine Java-Themen 2
T Programm bleibt ohne Fehler stehen Allgemeine Java-Themen 4
G Fehler beim instanzieren einer Generischen Klasse Allgemeine Java-Themen 5
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11
K Input/Output Fehler bei Dateierzeugung Allgemeine Java-Themen 7
M Fehler bei Remoteinstallation von Java Allgemeine Java-Themen 5
M Fehler bei Verwendung von TexturePaint Allgemeine Java-Themen 16
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
G Merkwürdiger Fehler NetBeans Allgemeine Java-Themen 2
G Native Library / Fehler beim Laden der .so/.dll Datei Allgemeine Java-Themen 17
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
iB0T Unverständlicher Fehler Allgemeine Java-Themen 5
S Antlr Grammatik übersetzt ohne Fehler, dennoch wird Zahl nicht als Eingabe erkannt Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben