Frage von YellowEagle, 59

Allgemein Fragen zu Java IO - könnt Ihr mir helfen?

Hallo,
ich habe generell zum Thema Java IO viele Fragen.Leider finde ich auf Google keine richtigen Antworten also frage ich hier.An alle die die meinen mir sagen zu müssen das sie es nicht wissen oder das das hier das falsche Forum sie bitte schreibt es erst gar nicht aber an alle anderen danke im forraus.
Meine Fragen:

-Was sind Java IO ByteBuffer und für was braucht man sie?
-Was sind Java IO Channel?
-Wie werden versendet man Daten korrekt (das frage ich weil ich mir sicher bin das größere Programme nicht mit Writern unf Readern arbeiten)?
-Wie verschickt man Daten mit IDs?

Lg Luick

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von phigeek, 8

Das sind ja viel Fragen aufs Mal und alle kann ich nicht beantworten.

Über channel wirst Du bei Oracle API (Package java.nio.channels) fündig. Im Wesentlichen sollen sie Thread-Save sein und non-Blocking. Das heißt, wenn keine Daten anstehen, wird nicht der Therad blockiert (ausprobiert habe ich es allerdings nicht). Im Gegensatz zu herkömmlichen Datenströmen sind channels in beide Richtungen (read/write) nutzbar (mit flip() kann die Richtung gewechselt werden).

Der wesentliche Unterschied von Reader/Writer zu Streams ist die Tatsache, dass es sich bei Streams immer um Java-Byte (8Bit) handelt. Ein Reader bzw. ein Writer empfängt (bzw. sendet) immer char.

Und natürlich: Auch große Anwendungen (bei uns im Versicherungs/Bankenumfeld) senden Daten mit Readern/Writern, um XML-Dateien oder SOAP-Pakete zu versenden. Das ist nicht gerade der performanteste Weg, doch fürs Debugging äußerst günstig.

Leider habe ich damit nur teilweise Deine Frage beantwortet...

Kommentar von YellowEagle ,

Danke sehr und entschuldige das ich erst so spät antworten konnte!

Antwort
von Tschoo, 37

Hallo Luick!

Auch wenn ich aus deiner Fragestellung sehen kann, dass du dich noch nie ernsthaft mit IO und Computer beschäftigt hast, werde ich dir kurz antworten.

1) IO ByteBuffer Java-Klassen (hier die Speicher) die das handlen mit Bytes vereinfachen (statt mit String oder UTF oder....)

2) Ein aus/Eingabe Kanal (z.b. seriell, parallel oder prot oder Protokoll, wie http)

3) mit was den sonst, natürlich Reader und writer

4) so wie welche ohne IDs --

Kommentar von YellowEagle ,

Hallo und danke erstmal für Ihre Antwort!

Da Sie hier bemängeln, dass Ich mich noch "nie" ernsthaft mit Computern beschäftigt hätte, werde ich mich dazu kurz äußern.

Ich 14 Jahre alt programmiere seit einem Jahr und habe mich als erstes sehr viel mit Java und der Bukkit API also Minecraft Plugins  beschäftigt, dann bin ich in Richtung Web gegangen wo ich auch sehr lange hängen geblieben bin und habe mich mit PHP,JS(JQuery),HTML,CSS beschäftigt dann bin ich wieder davon weg und bin zu Java,Python,C# gekommen.Da mich Python und C# nicht sehr reizten ganz einfach aus dem Grund weil es dafür zu wenig Tuts (das Problem ist das das man sich als 14-jähriger nur über das Internet "weiterbilden" kann denn in der Schule oder zumindest in meiner gibt es keine Möglichkeit dazu) oder ähnliches gab bin ich zu Java gegangen habe mich mit swing beschäftigt und dann eben zu Java IO. Damit habe ich dann auch meinen ersten Chat zusammengebaut etc..

Da es zum Thema IO auch nicht wirklich sehr viel gibt, auch keine Bücher, bin ich nun hier her gekommen um einige meiner Fragen beantworten zu lassen.Jetzt bin ich in der Situation, dass Sie mir vorwerfen, dass ich mich nicht ernsthaft mit PCs beschäftigt habe natürlich weiß ich auch was Bytes etc. sind jedoch bin ich in dieser Richtung noch sehr unerfahren. Abgesehen davon haben Sie meine Fragen auch nicht richtig beantwortet.

MFG Yellow.

Kommentar von Tschoo ,

Mein lieber Yellow!

Als ich 14 war, konnte ich mich noch nicht so damit beschäftigen -- damals gab's noch keine Heimcomputer.

Ich hab nicht gesagt, du hast dich nicht mit Computern beschäftigt, sondern mit IO+Computern.

Vieles fehlt vielleicht auch noch in der Vorstellung (z.B. Buffer, oder Channel) -- du verbindest mit den Worten andere Dinge.

Deswegen gelten meine Antorten trotzdem noch, auch wenn dir vielleicht noch des letztendliche Verständnis fehlt (für mich kommen auch immer neue Sachen dazu, die ich erstmal hinnehme, und irgendwann vielleicht mal vertehe, wenn ich sie brauche.)

Zum lernen würde ich dir trotzdem erst mal Büher empfehlen. Im Internet werden oft (ungegesagte) Voraussetzungen angenommen.

Gehe in deine Bücherei (oder Schule), leihe dir da Java-Bücher oder Turorials aus, dann irgndwann Dinge die damit zu tun haben (Datenbanken). Die Sprachen ändern sich grundsätzlich nicht, deswegen brauchst du nicht ein Tutorial für JDK 1,8 (Aktuelle gerade), reicht irgndeines und das findest du in einer Bücherei.

Gruß aus Stuttgart

Kommentar von YellowEagle ,

OK,

ich habe oben ein bisschen überreagiert....

Ich lese viel ich, nehme mir aber auch viele Dinge aus dem Internet.

Ich arbeite viel mit SQL(MYSQL)/NOSQL(MongoDB) sonst hätte ich ja auch kein PHP angefangen.

Ich habe das grundsätzliche Verständnis mir fehlen lediglich die Erklärungen zu den Methoden.

Ich kenne keine Bücherei in der es Bücher über Java gibt, auf unserer Schule gibt es auch nur 2 Lehrer die Java können und ich habe den Naturwissenschaftlichen Zweig genommen dem entsprechend auch keine Bücher.

Das klingt vielleicht eingebildet aber wenn ich Sie währe und ein Person mit 14 kommt und mir sagt was er alles so tolles kann, würde jeder an das Klischee "der Junge der denk das er kann" denken. Ich gebe ja auch gut zu das mir viele Begriffe fehlen.

Kommentar von Tschoo ,

Stadtbücherei?

Natürlich gibt es auch die offizielle Java-Dokumentation (unter Oracle im Netz zu finden), nur ist diese für einen Anfänger (ging mir auf jeden Fall so) schwer zu lesen.

Sonst gibt es schon Tutorials (vogella gefällt mir gut, also vogella mal als Suchbegriff in Suchmaschine eingeben) und "Java ist nur eine Insel" von Rheinwerk ist Online wohl auch kostenlos ("Standardwerk")

Gruß und viel Erfolg

Kommentar von Zuck3r ,

Die Java Reference hilft idr nur dann, wenn du irgendwas spezielles zur funktion wissen willst. Eine Vorstellung davon, was du mit ihr tun kannst erhälst du dadurch nicht.

Ich finde es einfacher Tutorials passend zu dem zu suchen, was ich gerade machen will. Dann kommt man idr deutlich schneller ans Ziel.

Keine passende Antwort gefunden?

Fragen Sie die Community