Nachfrage zu der genauen funktion folgendes codes

Status
Nicht offen für weitere Antworten.

d3x84

Mitglied
Java:
    public String read() throws IOException {
        if (con == null) {
            con = sitepath.openConnection();
        }
        InputStream in = con.getInputStream();
        int c = 0;
        StringBuffer incoming = new StringBuffer();
        while (c >= 0) {
            c = in.read();
            incoming.append((char) c);
        }
        return incoming.toString();

Bei meiner suche nach tutorials wie man eine verbindung mit einem server via post
herstellt bin ich auf ein sehr gut verständliches gestoßen.
Allerdings ab InputStream verstehe ich leider nicht genau was passiert,
da der Author die methoden wie read und append bzw. InputStream / StringBuffer nicht erklärt.

wäre für eine erklärung sehr dankbar
 
T

tuxedo

Gast
Java:
InputStream in = con.getInputStream();
        int c = 0;
        StringBuffer incoming = new StringBuffer();
        while (c >= 0) {
            c = in.read();
            incoming.append((char) c);
        }
        return incoming.toString();

Was ist daran so schwer?

Zeile 1: InputStream holen
Zeile 2: temporäre Variable zum einlesen einen einzelnen Characters anlegen
Zeile 3: Einen StringBuffer anlegen in den man die gelesenen Zeichen stecken kann
Zeile 4-7: Zeichen für Zeichen vom Stream lesen und dem StringBuffer anhängen
Zeile 8: Den kompletten String-Inhalt des StringBuffers zurückgeben
 

d3x84

Mitglied
tfa... danke die antwort kenne ich schon...

das problem ist das die docu in dipl informatiker englisch geschrieben ist und genau wie viele bücher nur schwer verständlich ist.
daher frage ich hier in der hoffnung eine erklärung zu bekommen denn eine erklärung ist z.B.
setDoOutput(true);
Lässt den ausgehen datenstrom zu.

auf der java seite steht dann

setDoOutput(boolean); awaits a boolean value (true/false)

versteht ihr was ich meine?
 
Zuletzt bearbeitet:
T

tuxedo

Gast
danke die antwort kenne ich schon...

Wie? Erst fragen und dann die Antwort doch schon kennen?

das problem ist das die docu in dipl informatiker englisch geschrieben ist und genau wie viele bücher nur schwer verständlich ist.

Wäre möglich ja.
daher frage ich hier in der hoffnung eine erklärung zu bekommen denn eine erklärung ist z.B.
setDoOutput(true);
Lässt den ausgehen datenstrom zu.

auf der java seite steht dann

setDoOutput(boolean); awaits a boolean value (true/false)

versteht ihr was ich meine?

Ne, versteh ich nicht. Deine letzte Frage passt nicht zur der, die du ursprünglich gestellt hast. Ich gehe also davon aus dass es sich heir um das nächste Problem handelt?

setDoOutput(true);
Lässt den ausgehen datenstrom zu.

Korrekt. "setDoOutput" ist ein Methodenaufruf der, je nachdem welcher Wert (true oder false) ihm mitgegeben wird, den ausgehenden Datenstrom zulässt oder nicht.

setDoOutput(boolean); awaits a boolean value (true/false)

Und wo liegt jetzt genau dein Problem? Lass mich mal mutmaßen:
Du wunderst dich dass da einmal steht man soll "true" oder "false" reingeben, und dann steht da auch noch was von "boolean" was dann gar nicht mehr so ins Bild passt, da man ja nur "true" oder "false" angeben soll?

Wenn ich mit meiner Mutmaßung richtig liege, dann - sei mir bitte nicht böse - solltest du dir dringend ein Buch zulegen dass dir die Grundlagen der Programmierung näher bringt und dir aufzeigt, dass Boolsche Variablen entweder "true" oder "false" sein können.

Sollte ich nicht richtig liegen, so wirst du nicht drum rumkommen zu erklären wo dein Problem nun genau liegt.

- Alex
 

d3x84

Mitglied
Java:
InputStream in = con.getInputStream();
        int c = 0;
        StringBuffer incoming = new StringBuffer();
        while (c >= 0) {
            c = in.read();
            incoming.append((char) c);
        }
        return incoming.toString();

Was ist daran so schwer?

Zeile 1: InputStream holen
Zeile 2: temporäre Variable zum einlesen einen einzelnen Characters anlegen
Zeile 3: Einen StringBuffer anlegen in den man die gelesenen Zeichen stecken kann
Zeile 4-7: Zeichen für Zeichen vom Stream lesen und dem StringBuffer anhängen
Zeile 8: Den kompletten String-Inhalt des StringBuffers zurückgeben



Vielen Dank =)
nur eine kleine frage hab ich noch...

c=in.read();


c ist eine variabl vom typ int mit wert 0

in ist eine con.getInputStream instanz.

was macht aber read?

liest es die werte von con.getInputStream aus?
weil dann muss der rückgabewert ja ein int sein?
aber ich denke getinputStream nimmt die "eingehenden daten" auf also zb ein string... bin verwirrt ^^
 

d3x84

Mitglied
Wie? Erst fragen und dann die Antwort doch schon kennen?



Wäre möglich ja.


Ne, versteh ich nicht. Deine letzte Frage passt nicht zur der, die du ursprünglich gestellt hast. Ich gehe also davon aus dass es sich heir um das nächste Problem handelt?



Korrekt. "setDoOutput" ist ein Methodenaufruf der, je nachdem welcher Wert (true oder false) ihm mitgegeben wird, den ausgehenden Datenstrom zulässt oder nicht.



Und wo liegt jetzt genau dein Problem? Lass mich mal mutmaßen:
Du wunderst dich dass da einmal steht man soll "true" oder "false" reingeben, und dann steht da auch noch was von "boolean" was dann gar nicht mehr so ins Bild passt, da man ja nur "true" oder "false" angeben soll?

Wenn ich mit meiner Mutmaßung richtig liege, dann - sei mir bitte nicht böse - solltest du dir dringend ein Buch zulegen dass dir die Grundlagen der Programmierung näher bringt und dir aufzeigt, dass Boolsche Variablen entweder "true" oder "false" sein können.

Sollte ich nicht richtig liegen, so wirst du nicht drum rumkommen zu erklären wo dein Problem nun genau liegt.

- Alex

die antworten oben sind etwas versetzt
als du mir geantwortet hast aheb ich gerade auf die antwort von tfa geantwortet.

und seine antwort ist zwar okay aber nicht das was ich wollte

er hätte genauso antworten können "schau mal in die faq" weil da isn link auf die offizielle java sun docu

doch die ist wie ich schon gesagt habe sehr viel schwerer verständlich als wenn mir jemand normal hier im forum antwortet. denn die docu ist dipl informatiker englisch.
d.h. die meisten haben da schon beim deutschen probleme geschweige denn das englische

daher auch die beiden beispiele

weil beispiel 1 -> so antwortet ein normal denkender mensch der verstanden hat was er tut.
beispiel 2 -> so antwortet jemand der studiert hat und die antwort aus dem buch auswendig kennt.

Zitat vieler info studenten in einem end semester
"hey das ham wir im 3 semester gemacht... aber das hab ich erfolgreich...... vergessen. iiirgendwo hab ich das noch muss mal sehen wo das is dann kann ichs dir geben"

das ist der unterschied zwischen beispiel 1 und beispiel 2


PS:
die informatiker die wirklich verstehen was sie da tun UND verstehen kenne ich sehr viele. die wenigsten davon gehn allerdings mit mir einen trinken......
Einem z.B. macht es mir spaß md5 verschlüsselungen zu lesen und im kopf rück zu rechnen wie der schlüssel ist...
 
B

Beni

Gast
Es geht ja das Gerücht um, dass Informatiker nicht wie normale Menschen denken... :p

Im Falle von "in.read()" wird genau ein byte gelesen und zurückgegeben, ob du das als ASCII-Zeichen, als Teil einer IP-Addresse oder als Abkürzung für Teddybär interpretierst ist dir selbst überlassen (gewisse Interpretationen haben allerdings mehr Sinn als andere...). In diesem Fall könnte es ASCII sein, oder auch etwas wie UTF-8. Was es genau ist, steht überlicherweise im Dokument selbst (im meta-Tag, da steht etwas wie 'content="text/html; charset=UTF-8"').
 

d3x84

Mitglied
Es geht ja das Gerücht um, dass Informatiker nicht wie normale Menschen denken... :p

Im Falle von "in.read()" wird genau ein byte gelesen und zurückgegeben, ob du das als ASCII-Zeichen, als Teil einer IP-Addresse oder als Abkürzung für Teddybär interpretierst ist dir selbst überlassen (gewisse Interpretationen haben allerdings mehr Sinn als andere...). In diesem Fall könnte es ASCII sein, oder auch etwas wie UTF-8. Was es genau ist, steht überlicherweise im Dokument selbst (im meta-Tag, da steht etwas wie 'content="text/html; charset=UTF-8"').

ok dann bin ich eindeutig für den teddybär =)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben