java nio lire ligne par ligne
J'ai besoin de lire un fichier ligne par ligne à l'aide de java nio
la première ligne doit être lue et le traitement doit se faire
mais nio ne dispose pas d'une méthode readline() pour lire une ligne à la
veuillez fournir un exemple de code
Pourquoi avez-vous besoin de faire cela avec Java NIO; pensez-vous que cela vous vaudra quelque chose au-dessus de l'aide
oui .. peut-u s'il vous plaît me dire comment faire pour lire une ligne comme celle-ci .readline()
un exemple de code qui aide grandement
Permettez-moi de reformuler: pensez-vous que vous gagnerez en utilisant NIO au lieu de
Utiliser readLine sur un Socket docs.oracle.com/javase/tutorial/networking/sockets/... stackoverflow.com/questions/1577719/... stackoverflow.com/questions/2788250/...
BufferedReader
?oui .. peut-u s'il vous plaît me dire comment faire pour lire une ligne comme celle-ci .readline()
un exemple de code qui aide grandement
Permettez-moi de reformuler: pensez-vous que vous gagnerez en utilisant NIO au lieu de
BufferedReader
?Utiliser readLine sur un Socket docs.oracle.com/javase/tutorial/networking/sockets/... stackoverflow.com/questions/1577719/... stackoverflow.com/questions/2788250/...
OriginalL'auteur Aashwin Jain | 2012-07-26
Vous devez vous connecter pour publier un commentaire.
NIO est généralement utilisé pour faire soit en accès direct à la mémoire ou bloc de médiation en vrac transferts de données. Il fait d'autres choses, mais les autres caractéristiques ont plus à voir avec le blocage et les non-blocage de l'accès aux données.
En tant que tel, vous pouvez utiliser NIO pour saisir les données rapidement (ou dans un non-bloquant); toutefois, si vous souhaitez le lire ligne par ligne", vous seriez mieux servi en faisant la ligne de détection après NIO a lu dans les données disponibles. Cela pourrait facilement être mis en œuvre en mettant une "ligne de lecture" de façade sur la mémoire tampon qui NIO viens de lire.
si vous voulez un exemple pourquoi avez-vous accepté la réponse?
Aucune réponse va être à venir, car si vous creusez plus profond dans la façon de le faire, elle commence juste à devenir plus dépendent d'un grand nombre de petits éléments (comment vous le traitement de la NIO tampons). Bien sûr, vous pouvez toujours utiliser le NIO tampons pour un flux en fonction lecteur; mais qui pose la question, pourquoi avez-vous utilisé NIO alors?
OriginalL'auteur Edwin Buck
- Je comprendre que vous les gars n'aiment pas les limites, mais dans le cas où la demande n'ont pas accès à IO package ou pas autorisés à l'importation pour une raison quelconque, la top réponse n'est pas utile...
Deux façons de le faire complètement IO gratuit:
java.nio.file.Files.lines
,Renvoie un flux de lignes, qui est partie de .util paquet et pas .io paquet comme bufferedReader.
java.nio.file.Files.readAllLines
,Retourne une collection de lignes qui est itératif.
Continuer à utiliser un
iterator
oufor each
à extraire une seule ligne.acclamations
Collège des exercices ont bizarre, contraintes parfois.
Aujourd'hui, je me retrouve dans la même situation, et c'est Daniel Braun a dit
OriginalL'auteur Daniel Braun
Pourquoi? NIO ne prend pas en charge la lecture des lignes. Vous pouvez lire des millions de lignes une seconde avec
BufferedReader.readLine().
je suggère que c'est suffisant.OriginalL'auteur user207421
Oracle introduit un exemple dans le tutoriel.
https://docs.oracle.com/javase/tutorial/essential/io/file.html#streams
OriginalL'auteur photom
À l'aide de
java.nio.fichier.Les fichiers
que vous pouvez faire:Comme le
lines(path)
méthode retourne unStream
, vous pouvez profiter de toute autre méthode de l'API Stream, comme la lecture de la première ligne (le cas échéant) avec:OriginalL'auteur ericbn
Cela fonctionne pour moi....
Et vous évitent la question du caractère fixe d'autre part.
C'est un parfait exemple de pourquoi un tel code est une mauvaise idée. Vous avez un bug là. La dernière ligne de séjours en ligne StringBuffer sans être imprimé ou otherewise traitées.
OriginalL'auteur Vinay
suffit d'utiliser:
https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#lines-java.nio.file.Path-
MODIFIER (humanreadable de traduction, en ce qui concerne MeetTitan): ce Qui signifie: utiliser
java.nio.file.Files.lines(Path)
- il renvoie uneStream<String>
représentant les lignes du fichier. C'est une méthode fournie par l'API Java. On pourrait consulter la Javadoc pour voir les détails. L'information la plus pertinente est donc:Files.lines()
existe depuis Java 1.8. L'utiliser.OriginalL'auteur polemoser
À l'appui de l'EJP et les autres ci-dessus, vous pouvez faire référence à cet article: http://www.javaworld.com/article/2078654/java-se/java-se-five-ways-to-maximize-java-nio-and-nio-2.html
En particulier:
"Alors que NIO est souvent mis en avant pour ses avantages en termes de performances, il est plus précis de dire qu'il est très réactif. Dans certains cas, NIO effectue en réalité pire que de base Java I/O. Pour séquentiel simple lit et écrit des fichiers de petite taille, par exemple, un simple flux de la mise en œuvre pourrait être deux ou trois fois plus vite que l'événement correspondant chaîne basée sur le codage. De plus, la non-canaux multiplex -- qui est, de chaînes dans des threads séparés, peuvent être beaucoup plus lent que les canaux qui inscrivent leurs sélecteurs dans un seul thread."
Je tiens à souligner l'instruction qui NIO Dans certains cas [...] effectue de pire que de base Java I/O. L'auteur suit une liste de questions à conduire une analyse rapide de savoir si NIO est le bon choix. Si vous (ou la personne suivante à venir) encore décide de poursuivre NIO il y a une bonne explication de son utilisation avec l'exemple de code.
OriginalL'auteur heyhey2k