# Frage: Buffered Reader --> Wie komm ich an die Daten (Byt



## Deficiency (27. Feb 2007)

Hallo

Also eine Frage:

Ich hab nen Netzwerkscanner. Auf dessen Port lausche ich. Den Daten Stream den ich bekomme ich eine Bilddatei.
1. Welchen Reader soll ich nehmen.
2. Wie komme ich an die Byte (Rohdaten)?


```
try {

			scanInetAddress = InetAddress.getByAddress(scanIpAddress);

			if (scanInetAddress.isReachable(5000)) {

				Socket scanSocket = new Socket(scanInetAddress, 2400);
				
				isr = new InputStreamReader(scanSocket.getInputStream());
				
							
				BufferedReader in = new BufferedReader(new InputStreamReader(
						scanSocket.getInputStream()));
				
			
				
				//in.read();
				
				scanSocket.close();
			}

		}
```

hab es jetzt mal mit InputStreamReader od Buffered Reader aber da hab ich doch keine möglichkeit an die Rohdaten zu kommen, oder?

Steh warscheinlich wieder voll auf der Leitung!

Ergänzung:

Liegt der Fehler an dem Stream: Muss ich als Client nicht vom scansocket.getOutputStream() holen?
Dann komm ich nämlich mit dem DataOutputStream an die Rohdaten?!?!?!?

Danke Flo


----------



## Marco13 (27. Feb 2007)

Im Prinzip kannst du lesen, bis nichtsmehr kommt - und zwar direkt aus dem InputStream - und das gelesene irgendwo hinschreiben. Z.B. in einen ByteArrayOutputStream, von dem man sich am Ende sehr leicht den byte-Array holen kann.

```
public static byte[] toByteArray(InputStream inputStream) throws IOException
    {
        BufferedInputStream bis = new BufferedInputStream(inputStream);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte buffer[] = new byte[8192];
        int readBytes = 0;
        while((readBytes = bis.read(buffer, 0, buffer.length)) > 0)
        {
            baos.write(buffer, 0, readBytes);
        }
        baos.flush();
        return baos.toByteArray();
    }
```


----------



## Deficiency (27. Feb 2007)

```
try {

			scanInetAddress = InetAddress.getByAddress(scanIpAddress);

			if (scanInetAddress.isReachable(5000)) {

				Socket scanSocket = new Socket(scanInetAddress, 2400);
				
				isr = new InputStreamReader(scanSocket.getInputStream());
				
				dos = new DataOutputStream(scanSocket.getOutputStream());
												
				byte[] readDos = new byte[dos.size()];
				
				
				dos.write(readDos);
				img = tk.createImage(readDos); //Bild mit dem awt.toolkit machen
				
				
				BufferedReader in = new BufferedReader(new InputStreamReader(
						scanSocket.getInputStream()));
				
			
				
				//in.read();
				
				scanSocket.close();
			}
```

Hab meinen Code jetzt so verändert.
Brauch blos noch das OK von Euch   ob ich mit dem DataOutputStream bzw. getOutputStream richtig liege?

thx


----------



## Deficiency (27. Feb 2007)

Sorry habe deine Antwort erst jetzt gesehen!!!

DANKE!!!!!!

Als Client brauch ich aber auf jedenfall den InputStream, oder? (Verständnisfrage)


----------

