Input/Output InputStream gibt nicht die Korrekten Werte aus

G33K

Mitglied
Moin zusammen,

wieder einmal beiße ich mir die Zähne aus und bin auf eure Fachkentnisse angewiesen und hoffe das ihr mir auch diesmal helfen könnt.

Klasse1 erstellt ein Arraylist
Klasse 2 greift auf diese Arraylist zu
Sobald die Methode in Klasse 2 fertig ist, wird Klasse 1 gestartet um mit dem erstellen Array zu arbeiten.

Folgenden Code habe ich in Klasse 1:

Java:
for(int i = 0; i<final_config.size(); i++)
                        {
                        String cfg = final_config.get(i);
                        InputStream streamcfg = new BufferedInputStream( new ByteArrayInputStream(cfg.getBytes()));
                       
                        BufferedReader br = new BufferedReader (new InputStreamReader(streamcfg, "UTF-8"));
 
                        String line;
                            while((line = br.readLine())!=null)
                            {
                                System.out.println("line : "+line);
                                System.out.println("is :   "+streamcfg);
                                channel.setInputStream(streamcfg);
                            }
                        streamcfg.close();   
                        }

Wenn ich dieses Anweisung starte erhalte ich folgenden Output:

line : conf t
is : java.io.BufferedInputStream@239620ed

Kann mir jemand sagen, warum die variable is != line ist?

Vielen Dank vorab :)
 

Thallius

Top Contributor
Welche Variable is? Was ist channel und was machst du da überhaupt, bzw was soll der Code machen?

Ich kapier nur Bahnhof. Sorry
 

G33K

Mitglied
Moin Thallius,

  • als "is" habe ich in der Ausgabe für den InputStream verwenden. Der InputStream verwendet die Variable: streamcfg
  • Der "channel" wird geöffnet um eine SSH Verbindung aufzubauen. Das funktioniert. In der SSH Verbindung sollen Daten übertragen werden. Dafür benötige ich einen InputStream
  • Der Code soll in der SSH Verbindung Befehle übertragen, welche vorher zusammengesetzt wurden und im Array final_config gespeichert sind. Das funktioniert auch.
Das problem ist die übertragung der Informationen aus der final_config in die cfg(welche man evtl auch weglassen kann) an den InputStream damit dieser die Daten an den Channel weiterreichen kann und damit über die SSH Verbindung übertragen werden.

Hoffe jetzt ist es bisschen klarer.
 

Thallius

Top Contributor
Nein eigentlich nicht.

Wie kommst Du auf die Idee das streamcfg (eine REferenz auf einen InputStream) irgendwas mit line (eine Referenz auf einen String) zu tun haben könnte?
 

G33K

Mitglied
Ich glaube ich muss dazu sagen das ich Anfänger bin.
Wenn ich wüsste wo der Fehler ist dann bräuchte ich nicht diese scheinbar dumme Frage stelle :-(
Ich sehe gerade der Bereich (line) gerade nicht funktionieren kann.

Ich schaue gleich nochmal in den Quellcode.
Aber es war nur eine Ausgabe ob mein final_code die Werte enthält die ich brauche bzw. haben will.
Das kann ich bestätigen.

Mein Problem ist das diese ArrayList final_code nicht mit einem InputStream ausgeben wird.
Wenn ich mir das Anzeige lasse was InputStream streamcfg ausgibt, dann kommt da nur der Unsinn raus was ich dargestellt habe unter "is"
 

JStein52

Top Contributor
Auf die von dir angegebene Art und Weise gibst du dir doch nicht aus "was InputStream streamcfg ausgibt". Wie Thallius sagte gibst du dir die Referenz auf einen InputStream aus, und das sieht nun mal so aus wie du es beschrieben hast. Und von dem Rest verstehe ich absolut nicht was du meinst.

Edit: ist es so dass dein channel einen InputStream braucht von dem er lesen will ? Das sieht aber doch dann soweit richtig aus. Nur das was du da mit println ausgibst ist Unsinn. Was funktioniert denn mit dem Channel nicht ? Bzw. was tut er ? Ich denke mal du müsstest dort weiter debuggen
 
Zuletzt bearbeitet:

G33K

Mitglied
Moin JStein52,

ja der channel benötigt einen InputStream. Es handelt sich um eine Klasse "jsch", welche man sich aus dem Internet laden kann und womit eine SSH Verbindung aufgebaut wird.

Der Aufbau der SSH Verbindung funktioniert. Jedoch damit man Daten übergeben kann wird es als InputStream benötigt.
Es kann sein das ich die Daten nicht richtig an den channel übergeben habe. Um das zu prüfen wollte ich mir Ausgeben lassen was der InputStream an Daten überhaupt ausgibt.
Dabei kam der obrige "Fehler" zustande.
Gibt es eine Möglichkeit sich die Daten aus dem InputStream direkt per System.out.print..... ausgeben zu lassen?

Wie schon gesagt bin Anfänger und wäre echt dankbar wenn man mir einen Tipp geben kann wie man sich den InputStream zur Prüfung ausgeben lassen kann, ohne den Hashcode: java.io.BufferedInputStream@239620ed

Danke und schönen Sonntag



EDIT:
Ich habe etwas gebastelt, könnte das hinkommen, oder habe ich wieder etwas falsch gemacht?

!!!! Dieser Code dient nur zum Testen, die Funktion entspricht der gleichen wie ich sie benötige

Java:
public class test {
    static ArrayList<String> final_config = new ArrayList<String>();

    public static void main (String[] args) throws IOException
    {
        System.out.println("Vor der For schleife + Fühlen der des Arrays!");
    
        final_config.add("Test1");
        final_config.add("Test2");
        final_config.add("Test3");
        final_config.add("Test4");
        final_config.add("Test5");
        final_config.add("Test6");
        final_config.add("Test7");
    
    
        for(int i = 0; i<final_config.size(); i++)
        {
            String cfg = String.valueOf(final_config.get(i));
            System.out.println(cfg);
            InputStream streamcfg = new ByteArrayInputStream ( final_config.get(i).toString().getBytes());
            BufferedReader input = new BufferedReader (new InputStreamReader (streamcfg));
        
        
            String line = null;
        
            while ((line = input.readLine()) !=null)
            {
                System.out.println("Test zum Prüfen der EIngabe!: "+line);
            }
       
            System.out.println(streamcfg);
        }                    
    
       System.out.println("Nach der For schleife");
    }


}

Folgenden Output erhalte ich :

Code:
Vor der For schleife + Fühlen des Arrays!
Test1
Test zum Prüfen der EIngabe!: Test1
java.io.ByteArrayInputStream@70dea4e
Test2
Test zum Prüfen der EIngabe!: Test2
java.io.ByteArrayInputStream@5c647e05
Test3
Test zum Prüfen der EIngabe!: Test3
java.io.ByteArrayInputStream@33909752
Test4
Test zum Prüfen der EIngabe!: Test4
java.io.ByteArrayInputStream@55f96302
Test5
Test zum Prüfen der EIngabe!: Test5
java.io.ByteArrayInputStream@3d4eac69
Test6
Test zum Prüfen der EIngabe!: Test6
java.io.ByteArrayInputStream@42a57993
Test7
Test zum Prüfen der EIngabe!: Test7
java.io.ByteArrayInputStream@75b84c92
Nach der For schleife
 
Zuletzt bearbeitet:

JStein52

Top Contributor
Das ausgeben von streamcfg wird dir nichts bringen aber der Rest ist doch in Ordnung. Und was ist jetzt das Problem wenn du nun den InputStream deinem channel übergibst ?

Java:
channel.setInputStream(streamcfg);

Und warum wolltest du das in deinem ersten Post eigentlich in der Schleife immer wieder machen ?
Ohne deine channel-Klasse zu kennen hätte ich das ein einziges Mal gemacht. etwa so:

Java:
public class test {
    static ArrayList<String> final_config = new ArrayList<String>();

    public static void main (String[] args) throws IOException
    {
        System.out.println("Vor der For schleife + Fühlen der des Arrays!");
  
        final_config.add("Test1");
        final_config.add("Test2");
        final_config.add("Test3");
        final_config.add("Test4");
        final_config.add("Test5");
        final_config.add("Test6");
        final_config.add("Test7");
  
  
        for(int i = 0; i<final_config.size(); i++)
        {
            InputStream streamcfg = new ByteArrayInputStream ( final_config.get(i).toString().getBytes());      
      
            channel.setInputStream(streamcfg);
            streamcfg.close();
        }                   
  
       System.out.println("Nach der For schleife");
    }


}

Wobei ich mir bei der Schleife über final_config auch nicht sicher bin ob das so gewollt ist. Brauchst du nicht einen einzigen String von dem dein channel liest ?
 

G33K

Mitglied
Danke für die Antwort. Mein erstes Problem war die Ausgabe der streamcfg über System.out.println.
Das sich das Problem so wie es aussieht erledigt hat, kann man das abhacken.
Warum ich das über eine schleife mache? Ich habe ein Arraylist mit ca. 66 Einträgen die alle nach einander Übertragen werden müssen. Daher ist mir nichts anderes eingefallen als das über eine Schleife zu machen.
Ich bin jetzt am tüffteln das die Befehle auch wirklich übertragen werden. Das klappt noch nicht so ganz bis garnicht :-D
 

JStein52

Top Contributor
Ich kenne ja deinen aktuellen Code nicht, aber du setzt ja einfach in einer Schleife für deinen channel einen neuen InputStream und der InputStream liest ja dann immer nur einen einzigen String. Gefühlsmässig würde ich sagen am Ende liest der channel nur von einem einzigen String, nämlich dem letzten in deiner ArraList. Was genau passiert denn ?
 

G33K

Mitglied
Moin,

ich habe das Problem gefunden. Ich muss bei der SSH Verbindung einen Input Stream öffnen, und einen weiteren der die Daten dann überträgt. Also einen Tunnel selbst und einen Printer um die Daten zu übertragen.

Danke für eure Hilfe :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A InputStream gibt nur jede 2te Zeile aus Java Basics - Anfänger-Themen 7
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
berserkerdq2 inputstream und bufferedwirter /outputstream und bufferedwriter Java Basics - Anfänger-Themen 9
T Bluetooth, Inputstream Java Basics - Anfänger-Themen 0
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
B InputStream / OutputStream / PipedOutputStream und managedExecutorService Java Basics - Anfänger-Themen 3
B java.io.OutputStream zu java.io.InputStream konvertieren Java Basics - Anfänger-Themen 18
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
B Konvertieren: Outputstream zu Inputstream Java Basics - Anfänger-Themen 13
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
T Datentypen InputStream to list of Int (or similar) Java Basics - Anfänger-Themen 4
P bytes aus einem InputStream zählen Java Basics - Anfänger-Themen 2
P InputStream eines Musik-Streams abspielen Java Basics - Anfänger-Themen 2
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
T Input/Output Exception bei einem InputStream Java Basics - Anfänger-Themen 2
W ProcessBuilder InputStream in Array speichern Java Basics - Anfänger-Themen 3
K InputStream erstellen Java Basics - Anfänger-Themen 4
B Input/Output Data / Buffer / File Outstream Inputstream Java Basics - Anfänger-Themen 2
L Webservice soll InputStream übergeben bekommen Java Basics - Anfänger-Themen 7
S Eigener InputStream, Hilfe bei read-Methode Java Basics - Anfänger-Themen 6
C InputStream Java Basics - Anfänger-Themen 2
O Input/Output Fragen zum InputStream Java Basics - Anfänger-Themen 7
E Input/Output Relativer Bild-Pfad für InputStream Java Basics - Anfänger-Themen 5
G Frage zu InputStream? Java Basics - Anfänger-Themen 11
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
E Input/Output Inputstream während der Laufzeit füllen Java Basics - Anfänger-Themen 2
A Frage zu Beispiel eines Dekorierers von InputStream Java Basics - Anfänger-Themen 4
B Input/Output InputStream (JSch) in OutputStream (Blob) überführen Java Basics - Anfänger-Themen 8
P Input/Output InputStream Listener? Java Basics - Anfänger-Themen 7
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11
J InputStream FTP Java Basics - Anfänger-Themen 8
brunothg Inputstream zu Filechannel Java Basics - Anfänger-Themen 6
K StringWriter/String nach InputStream konvertieren Java Basics - Anfänger-Themen 3
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
A Problem mit InputStream Java Basics - Anfänger-Themen 4
bastiann Kann man Inputstream nur auf ein Zeichen anwenden? Java Basics - Anfänger-Themen 5
U Inputstream.read()/readLine() blockiert immer Java Basics - Anfänger-Themen 18
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Kompletten InputStream der Kommandokonsole ausgeben Java Basics - Anfänger-Themen 8
G InputStream aufrufen, ändern und zurück geben Java Basics - Anfänger-Themen 2
W Zeichen ersetzen im InputStream Java Basics - Anfänger-Themen 3
N String vom InputStream in TextArea übertragen Java Basics - Anfänger-Themen 6
A Frage zu Puffergröße bei InputStream Java Basics - Anfänger-Themen 9
G in einem inputstream auf " " abfragen? Java Basics - Anfänger-Themen 3
M Datei speichern mittels InputStream Java Basics - Anfänger-Themen 13
P InputStream in Byte-Array speichern Java Basics - Anfänger-Themen 2
G String in InputStream umwandeln? Java Basics - Anfänger-Themen 8
M Auslesen eines InputStream Java Basics - Anfänger-Themen 4
M Problem mit InputStream Java Basics - Anfänger-Themen 7
S Probleme mit InputStream- Rückgabe Java Basics - Anfänger-Themen 4
I InputStream von Konsole abfangen Java Basics - Anfänger-Themen 6
G InputStream im finally-Block schließen Java Basics - Anfänger-Themen 7
K InputStream? Java Basics - Anfänger-Themen 3
S Sockets and InputStream Java Basics - Anfänger-Themen 2
M InputStream einer Socketverbindung funktioniert nicht Java Basics - Anfänger-Themen 19
M Byte InputStream zu Zeichenformat Unicode bzw String konvert Java Basics - Anfänger-Themen 5
R InputStream erstellen, der aus String liest Java Basics - Anfänger-Themen 8
R ENTER in InputStream nicht lesen Java Basics - Anfänger-Themen 4
G InputStream auslesen und zurückschreiben Java Basics - Anfänger-Themen 9
R BufferedReader <-> InputStream Java Basics - Anfänger-Themen 3
R Suche geeignetes InputStream Java Basics - Anfänger-Themen 2
D InputStream -> Image Java Basics - Anfänger-Themen 6
M String zu InputStream/InputSource Java Basics - Anfänger-Themen 2
S Problem mit InputStream / flush() / BufferedReader Java Basics - Anfänger-Themen 19
C Aus ein Image-Objekt einen InputStream generieren? Java Basics - Anfänger-Themen 6
J InputStream in String umwandeln Java Basics - Anfänger-Themen 5
J InputStream ist null Java Basics - Anfänger-Themen 7
P InputStream, BufferedString Java Basics - Anfänger-Themen 3
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
S Gibt es sowas (JSpinner)? Java Basics - Anfänger-Themen 9
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
J Erste Schritte Gibt es setMantisse? Java Basics - Anfänger-Themen 7
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben