BufferedOutputStream / BufferedInputStream

Status
Nicht offen für weitere Antworten.
Wie wende ich einen Puffer auf folgendes Beispiel an?
Code:
InputStream serialIn;
OutputStream serialOut;
BufferedInputStream in;
BufferedOutputStream out;

try {serialIn = serss.getInputStream();
      serialOut = serss.getOutputStream();   

catch (Exception e) { System.out.println("Fehler: "+e);
        }

try {
            if(serialIn.available() > 0) 
                            
                   numBytes = new BufferedInputStream(serialIn).read(readBuffer); //??????wäre das korrekt???????
                   serialIn.close();
                          }
                    }
            catch(Exception e){ 




try{ out = new  BufferedOutputStream(serialOut);//.write((value));
         out.write(value);
         serialOut.flush();
         serialOut.close();
                
        }          
            catch(Exception e){
                System.out.println("Fehler" + e);
            }

Ich bin mir nicht sicher, aber beim InputStream hat das glaube ich geklappt, ich habe jedenfalls die Daten erhalten, die ich sehen wollte...
Aber der BufferedOutputStream funktioniert nicht. Was habe ich falsch gemacht? Gehe ich falsch in der Annahme, dass ich erst einen BufferedOutputStream out erzeuge und dann den serialOut OutputStream daran hänge?
 

mikachu

Top Contributor
IMO musst du den bufferedoutputstream flushen / closen, nicht den darunterliegenden outputstream.

btw: ein close auf den stream bewirkt ein automatisches flushen... laut api
 

Der Müde Joe

Top Contributor
ein kleines Beispiel:

Code:
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class Test {

	public static void  main(String [] args) throws Exception{
		// das zu schereibende File
		File file = new File("test.txt");
		
		//eingentlich Writer da characters....aber es geht ja ums Beispiel
		//alternativ kann auch ein anderer Stream verwendet werden um an ein
		//anderes ort zu schreiben:
		//Socket s = new Socket("myPC", 55155);
		// out = new BufferedOutputStream(s.getOutputStream());
		//schreibt an den PC myPc über den Port 55155 übers Netzwerk...
		OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
		
		//schreibe jedes einzelene Zeichen
		for(char c : "Schreib--mich--raus".toCharArray()){
			out.write(c);
		}
		
		//versichere das alles geschrieben wurde und nicht im Speicher verhart
		out.flush();
		//schliesse den Stream
		out.close();	
	}
}
 
Danke für das Beispiel und die Erklärung dazu. Das war mal ein anschauliches Bsp. für einen Anfänger!
Ich werde es morgen, wenn ich die nötige Hardware wieder habe, gleich ausprobieren.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben