Die Pipeline in Java Nio ähnelt der tatsächlichen Pipeline mit zwei Enden, einem Abschnitt als Eingang und dem anderen Abschnitt als Ausgang. Das heißt, nach dem Erstellen einer Pipeline können Sie die Pipeline schreiben oder die Pipeline lesen, diese beiden Vorgänge müssen jedoch an beiden Enden durchgeführt werden. Ein bisschen wie eine Warteschlange.
Hier ist ein Diagramm des Rohrprinzips:
Erstellen Sie eine Pipeline
Öffnen Sie die Pipeline über die Methode pipe.open (). Zum Beispiel:
Pipe pipe = Pipe.open();
Schreiben Sie Daten in die Pipeline
Um Daten an die Pipeline zu schreiben, müssen Sie auf den Sink Channel zugreifen. So was:
Pipe.SinkChannel sinkChannel = pipe.sink();
Schreiben Sie Daten in SinkChannel, indem Sie die Write () -Methode von SinkChannel wie folgt aufrufen:
String newData = "Neue String, die in Datei schreiben sollen ..." + System.currentTimemillis (); bytebuffer buf = bytebuffer.alcode (48); buf.clear (); buf.put (newdata.getBytes ()); buf.flip (); while (buf.hasremaining ()) {sinkChannel.write (buf);}Im Testbeispiel geben wir einen sehr einfachen Pipeline -Vorgang an, schreiben Sie zuerst Inhalte in die Pipeline und lesen dann Inhalte aus der Pipeline.
Paket com.test.nio; import java.io.ioxception; import java.nio.bytebuffer; import Java.nio.Channels.Pipe; Pipe.SinkChannel sinkChannel = pipe.sink (); String newdata = "itbuluoge.com sagt:"+system Pipeline*/while (buf.hasremaining ()) {sinkChannel.write (buf);}/*Erstellen Sie eine Lesepipeline*/pipe.sourcechannel Sourcechannel = pipe.source (); ByteSread = Sourcechannel.read (getbuf); getbuf.flip ();/*Inhalt aus der Pipeline lesen*/while (getbuf.hasremaining ()) {System.out.print ((char) getbuf.get ());}}}}}}}}}}}}}}}}}}}}}}Ausgangsergebnis
Wir können sehen, dass wir die Ziele erreichen können, die wir brauchen. Beachten Sie, dass ich beim Programmieren an diesem Ort einen Fehler hatte, dh als ich die Pipeline las, habe ich GetBuf.flip () nicht festgelegt, was es unmöglich machte, die Daten zu lesen. Diese Funktion ist sehr wichtig. Nachdem Sie den Inhalt des Pufferlesens abgeschlossen haben, müssen Sie das Leseflag einstellen und den Zeiger auf die ursprüngliche Position wiederherstellen, bevor Sie alle Inhalte lesen können.
Das obige Inhalt ist in diesem Artikel über den Nutzungscode von Java Nio Pipelines geteilt, und ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!