WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 22.07.2006, 19:12   #1
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Frage Char Array in Java

Hallo Leute!

Was stimmt mit folgendem Code nicht?

Code:
import java.io.*;

public class DateiLeser {
	
	/**
	 * @param args
	 * @return 
	 */
	public void EingabeDatei(String dateiname) throws IOException{
		// TODO Auto-generated method stub
		FileReader datei;
		int c, i = 0, count=0;
			
		try
		{
			datei  = new FileReader(dateiname);
			while ((c = datei.read()) != -1)
			{
				count++;  // Ermittle die Größe des Charr Arrays				
			}
			datei.close();
			datei = new FileReader(dateiname);
			char[]name = new char[count];			
			
			while ((c = datei.read()) != -1)
			{
				name[i++] = (char)c;  // Beschreibe das CharArray, solange es Zeichen gibt!
			}
			datei.close();
			System.out.print(name); // HIER IST DIE AUSGABE MÖGLICH BRAUCHE SIE ABER WEITER UNTEN	
			
		}
		catch(IOException e)
		{
			System.err.println("Fehler beim Lesen der Datei!");
		}
		System.out.println("");
	}
      // System.out.print(name);   HIER IST DIE AUSGABE NICHT MÖGLICH, HAT DAS MIT DEM TRY CATCH ZU TUN?
	
}
Möchte das CharArray weiter unten ausgeben. Geht nicht, warum?

Grüße

Coolbininet
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 23.07.2006, 10:05   #2
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

Willst du die Variable außerhalb der Methode ausgeben? Dort ist sie nicht bekannt. Da müßtest du eine Member-Variable anlegen.

Falls du sie aber direkt nach dem try/catch Block ausgeben willst, definiere sie einfach gleich nach "FileReader datei", dann ist sie an der Stelle bekannt.

Übrigens, wenn du eine throws IOException Klausel angibst, dann brauchst du die IOException nicht abzufangen. Die Methode wirft ja keine Exception, so wie sie jetzt geschrieben ist.
delphirocks ist offline   Mit Zitat antworten
Alt 23.07.2006, 12:36   #3
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Standard

Hallo delphirocks!

Folgendes, ich möchte:

... Falls du sie aber direkt nach dem try/catch Block ausgeben willst, definiere sie einfach gleich nach "FileReader datei", dann ist sie an der Stelle bekannt. ...

Das Problem ist aber, dass ich mit dem ersten new FileReader die Anzahl der Zeichen bestimme. Jetzt brauche ich aber die count Variable dafür. Da ich aber nicht weiß, wie groß die Anzahl der Zeichen ist, wird erst später unten berechnet, kann ich nicht am Anfang bereits das CharArray mit dem Wert der Count Variablen initialisieren, was mache ich da?

Die Ausgabe soll unten nach dem Try/catch Block sein.

Bytheway bist du professioneller Javaprogrammierer?

Code:
try
		{
			datei  = new FileReader(dateiname);
			while ((c = datei.read()) != -1)
			{
				count++;  // Ermittle die Größe des Charr Arrays				
			}
			datei.close();
			datei = new FileReader(dateiname);
			char[]name = new char[count];			
			
			while ((c = datei.read()) != -1)
			{
				name[i++] = (char)c;  // Beschreibe das CharArray, solange es Zeichen gibt!
			}
			datei.close();
			System.out.print(name); // HIER IST DIE AUSGABE MÖGLICH BRAUCHE SIE ABER WEITER UNTEN	

		}

Grüße Coolbininet
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 23.07.2006, 13:16   #4
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Du kannst ja vorher die Variable deklarieren, ohne ihr einen Wert zuzuweißen

dh.

Code:
char[]name;
try
{
  ...

  name = new char[count];

  ...
}
catch(IOException e)
{
 ...
}

System.out.print(name);
T.dot ist offline   Mit Zitat antworten
Alt 23.07.2006, 21:47   #5
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

Du mußt aber sagen

char[] name=null;

Ansonsten regt sich der Java Compiler auf, daß die Variable nicht initialisiert wurde.

Bin übrigens professioneller C++/Delphi/PLSQL/C#/PHP Progammierer - mache nur ganz selten einen Abstecher in die Java-Welt.

lg
delphirocks ist offline   Mit Zitat antworten
Alt 24.07.2006, 06:18   #6
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Guten Morgen!

Hab das jetz nur kurz ausprobiert, aber du musst die Variable eigentlich nicht initialisieren (Java 1.5.07, schneller Test im JDeveloper)

Code:
public class Class1
{
   public static void main (String args[])
   {
      char[] name;
      name = new char[1];
      System.out.print(name);
   }
}
funktioniert hier eigentlich wunderbar, keine Ahnung wie das in C und Co. ist

mfg Thomas
T.dot ist offline   Mit Zitat antworten
Alt 24.07.2006, 07:52   #7
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

Nach einem try/catch funktioniert's aber nicht mehr (JDK 1.6.0-Beta).
Ist aber auch streng, das Java
delphirocks ist offline   Mit Zitat antworten
Alt 24.07.2006, 16:34   #8
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Standard Habe mir selber ein Ei gelegt!

Hallo Leute!

Bin auf den Fehler draufgekommen, leider nur durch einen Zufall, Schande über mein Haupt. Bin aber froh, dass es auch keiner im allerersten Posting des Codes von mir gefunden hat == Betriebsblindheit, bei mir viel mehr Anfängerschwierigkeite beim Java lernen. Der Fairness halber muss ich sagen, ich dachte auch zuerst es hat mit dem Try/catch zu tun. Neee, schneckeeeeee natürlich nicht.

Schaut Euch mal an, wo ich mit das letzte mal das Array ausgeben wollte. ... na gefunden ... ich wollte es zwar innerhalb der Methode ausgeben, nach dem Try/Catch aber nicht auf Ebene der Klasse.

aaaaaaaarrrrrrrrrrrrrrggggggggggggggg

Danke trotzdem für die Hilfe.

Frage an delphirocks: Kommst du vielleicht aus meiner Gegend, suche nämlich eine günstige Nachhilfe für die FH (Wien). Oder kennt sonst noch jemand wer, der mir günstig in Programmier unter die Vitiche greifen kann. (rein programmiertechnisch, nix sexuelles )

Grüße Coolbininet
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 24.07.2006, 21:25   #9
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

Komme aus Salzburg und könnte dir in Java auch nicht recht viel mehr als "Hello World" beibringen
delphirocks ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:24 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag