Histogram (Variable von anderer Klasse verwenden)

curiecu

Mitglied
Also ich habe die Aufgabe ein Histogram zu Programmieren, jedoch stelle ich mir gerade die Frage wie ich am besten eine Variable von einer anderen Klasse verwenden kann.

In diesem Fall habe ich die Klasse Histogram und readFile. In readFile lese ich einen text ein und schreibe sie in den string text. Wie kann ich nun die Variable Text für Histogram zur Verfügung stellen?

Hier sind die beiden Klasse mal.

readFile:
Java:
import java.io.*;

public class readFile {

	

	public void main(String [] args) throws IOException{
		String file_name="Test.txt";
		
		FileReader fr = new FileReader(file_name);
		BufferedReader br= new BufferedReader(fr);
		

		String text="This is the Text:";
		while(br.ready()){
			text+=br.readLine();
			
		}
		
	
		
	}

	
}

Histogram:
Java:
import java.io.*;


public class Histogram {

	
}

Vielen Lieben dank euch schonmal. Ich werde dieses Forum bestimmt auch noch im Laufe der nächsten Wochen mit Fragen bombardieren.

Ich bin nun erstmal einkaufen und freue mich über jeden Tipp!

Liebe Grüße
 
Zuletzt bearbeitet von einem Moderator:
T

TryToHelp

Gast
Hallo curiecu,

erst mal etwas klassisch zur Java formatierung, schreibweise, Klassen werden groß geschrieben ReadFile und variablen typischerweiße klein, aber nicht mit unterstrich, also fileName ;-)

Nun zu deinem Problem, eine der Beiden Klassen, oder eine Oberklasse kennt beide klassen und kann diese dann übergeben, entweder durch den Konstruktor oder über einen Setter ;-)

Java:
import java.io.*;
 
public class readFile {
 
    public void main(String [] args) throws IOException{
        String file_name="Test.txt";
        
        FileReader fr = new FileReader(file_name);
        BufferedReader br= new BufferedReader(fr);
 
        String text="This is the Text:";
        while(br.ready()){
            text+=br.readLine(); 
        }
        Histogram myHistogram=new Histogram(text);  
    }
}

Java:
public class Histogram {
 
private String text;

public void Histogram(String text){
   this.text=text;
}
    
}
 
T

TryToHelp

Gast
ups, das void bei dem Konstruktor muss weg. Ohne meine IDE bin ich irgendwie ziemlich aufgeschmissen, bei solchen Sachen

Java:
public class Histogram {
 
private String text;
 
public Histogram(String text){
   this.text=text;
}
    
}

so sollte es passen ;-)
 

curiecu

Mitglied
Hey dank dir für den Support.

Habe das nun so implementiert und möchte den text in der histogram klasse zum test in der console ausgeben. Habe das nun so probiert:

Java:
public class Histogram {
 
private String text;
 
public  Histogram(String text){
   this.text=text;
   System.out.println(text);
}
    
}

Und wenn es ausführen will, dann kommt eine Fehlermeldung "A Java exception error has occured"

Liebe Grüße
 
C

CureCU

Gast
Nein es steht nur da .. es wird aber im Quelltext von readFile darauf hingewiesen, dass die Lokale Variable von Histogram nicht verwendet wird.

Und bei Histogram wird darauf hingewiesen, dass das Feld Histogram.text nicht verwendet wird :S
 
M

Marcinek

Gast
Ja das liegt daran, dass du die IOException über die main weiter wirfst.

KA was dann passiert, aber ein Stacktrace würde ich schon erwarten.

Ansonsten fang die Exception richtig und mache dann ein e.printStacktrace und poste das hier.

Poste mal deinen Code hier und dann den vollständigen Stacktrace. Bestimmt konnte die eine Datei nicht gelesen oder gefunden werden.
 
C

CUreCU

Gast
Hallo,

mein Code steht ja schon weiter oben, jedoch weiß ich nicht genau wie man das mit dem STacktrace anstellt.

Liebe Grüße
 
T

TryToHelp

Gast
Indem du anstelle des throws IOException ein try catch machst und in dem catch block die Exception ausgibst.

Ich nehme auch stark an, das er die test.txt datei nicht findet, wo hast du die den liegen?
 

curiecu

Mitglied
Die test.txt findet er.
Könntest du mir vllt Anhand des Codes zeigen, wie ich es umschreiben muss? Ich stehe grad ein wenig auf dem Schlauch :S

Java:
import java.io.*;
 
public class readFile {
 
    public void main(String [] args) {

try{
        String file_name="Test.txt";
        
        FileReader fr = new FileReader(file_name);
        BufferedReader br= new BufferedReader(fr);
 
        String text="This is the Text:";
        while(br.ready()){
            text+=br.readLine(); 
        }
        Histogram myHistogram=new Histogram(text);  
} catch ( FileNotFoundException e )
    {
      System.err.println( "File not Found" );
    }
    catch ( IOException e )   
    {
      System.err.println( "Read/Write" );
    }
    }
}


So ?
 
T

TryToHelp

Gast
verwende mal in deinen catch blöcken

Java:
e.printStackTrace();

dann bekommt man meistens sinvolle hinweise
 

Neue Themen


Oben