Le but de InputStreamet OutputStreamest d'abstraire différentes façons d'entrer et de sortir: que le flux soit un fichier, une page Web ou l'écran ne devrait pas avoir d'importance. Tout ce qui compte, c'est que vous receviez des informations du flux (ou que vous envoyiez des informations dans ce flux).
InputStream est utilisé pour de nombreuses choses que vous lisez.
OutputStream est utilisé pour de nombreuses choses que vous écrivez.
Voici un exemple de code. Il suppose que InputStream instret OutputStream osstront déjà été créés:
int i;while((i = instr.read())!=-1){
osstr.write(i);}
instr.close();
osstr.close();
@KorayTugay Un flux est généralement défini comme un ensemble de caractères. Pour être plus précis, plusieurs bits ou caractères sont appelés en tant que flux.
Gowtham Gopalakrishnan
14
Plus d'un caractère est également String. Qu'est-ce qui différencie le flux de la chaîne?
Prajeet Shrestha
Je pense qu'un flux n'est que des zéros et des uns, pas des caractères.
smilyface
93
InputStream est utilisé pour la lecture, OutputStream pour l'écriture. Ils sont connectés en tant que décorateurs les uns aux autres de sorte que vous pouvez lire / écrire tous les différents types de données de tous les types de sources.
Par exemple, vous pouvez écrire des données primitives dans un fichier:
Pour la plupart des flux d'entrée, il existe également un flux de sortie. Vous pouvez définir vos propres flux pour lire / écrire des choses spéciales et il existe des flux complexes pour lire des choses complexes (par exemple, il existe des flux pour lire / écrire au format ZIP).
Un programme utilise un flux d'entrée pour lire les données d'une source, un élément à la fois:
Un programme utilise un flux de sortie pour écrire des données vers une destination, un élément à la fois:
La source de données et la destination de données illustrées ci-dessus peuvent être tout ce qui contient, génère ou consomme des données. Évidemment, cela inclut les fichiers de disque , mais une source ou une destination peut également être un autre programme, un périphérique, une prise réseau ou une matrice .
vous lisez à partir d'un InputStream et écrivez dans un OutputStream.
par exemple, supposons que vous souhaitiez copier un fichier. Vous devez créer un FileInputStream pour lire à partir du fichier source et un FileOutputStream pour écrire dans le nouveau fichier.
Si vos données sont un flux de caractères, vous pouvez utiliser un FileReader au lieu d'un InputStream et un FileWriter au lieu d'un OutputStream si vous préférez.
InputStream input =...// many different typesOutputStream output =...// many different typesbyte[] buffer =newbyte[1024];int n =0;while((n = input.read(buffer))!=-1)
output.write(buffer,0, n);
input.close();
output.close();
OutputStream est une classe abstraite qui représente l'écriture de sortie. Il existe de nombreuses classes OutputStream différentes, et elles écrivent sur certaines choses (comme l'écran, ou Files, ou des tableaux d'octets, ou des connexions réseau, ou etc.). Les classes InputStream accèdent aux mêmes choses, mais elles y lisent des données.
Voici un bon exemple de base d'utilisation de FileOutputStream et FileInputStream pour écrire des données dans un fichier, puis les relire.
Un flux est un flux continu de liquide, d'air ou de gaz.
Le flux Java est un flux de données d'une source vers une destination. La source ou la destination peut être un disque, une mémoire, un socket ou d'autres programmes. Les données peuvent être des octets, des caractères ou des objets. Il en va de même pour les flux C # ou C ++. Une bonne métaphore pour les ruisseaux Java est l'eau qui coule d'un robinet dans une baignoire et plus tard dans un drainage.
Les données représentent la partie statique du flux; les méthodes de lecture et d'écriture de la partie dynamique du flux.
InputStreamreprésente un flux de données depuis la source, le OutputStreamreprésente un flux de données vers la destination. Enfin, InputStreamet OutputStreamsont des abstractions sur l'accès de bas niveau aux données, telles que les pointeurs de fichier C.
Flux : En termes simples, le flux est des données, le flux le plus générique est une représentation binaire des données.
Flux d'entrée : si vous lisez des données à partir d'un fichier ou de toute autre source, le flux utilisé est le flux d'entrée. En termes plus simples, le flux d'entrée agit comme un canal pour lire les données.
Flux de sortie : Si vous souhaitez lire et traiter des données à partir d'une source (fichier, etc.), vous devez d'abord enregistrer les données, le moyen de stocker les données est le flux de sortie.
Un flux de sortie est généralement lié à une destination de données comme un fichier ou un réseau, etc. En Java, le flux de sortie est une destination où les données sont finalement écrites et se terminent
InputStream est utilisé pour la lecture, OutputStream pour l'écriture. Ils sont connectés en tant que décorateurs les uns aux autres de sorte que vous pouvez lire / écrire tous les différents types de données de tous les types de sources.
Par exemple, vous pouvez écrire des données primitives dans un fichier:
Pour lire le contenu écrit:
Vous pouvez utiliser d'autres types de flux pour améliorer la lecture / écriture. Par exemple, vous pouvez introduire un tampon pour l'efficacité:
Vous pouvez écrire d'autres données telles que des objets:
Vous pouvez lire à partir d'autres sources d'entrée différentes:
Pour la plupart des flux d'entrée, il existe également un flux de sortie. Vous pouvez définir vos propres flux pour lire / écrire des choses spéciales et il existe des flux complexes pour lire des choses complexes (par exemple, il existe des flux pour lire / écrire au format ZIP).
la source
Depuis le tutoriel Java :
Un flux est une séquence de données.
Un programme utilise un flux d'entrée pour lire les données d'une source, un élément à la fois:
Un programme utilise un flux de sortie pour écrire des données vers une destination, un élément à la fois:
Exemple de code du tutoriel Oracle:
Ce programme utilise les flux octets à copier xanadu.txt fichier à outagain.txt , en écrivant un octet à la fois
Jetez un œil à cette question SE pour en savoir plus sur les flux de caractères avancés, qui sont des wrappers au-dessus des flux d'octets:
flux d'octets et flux de caractères
la source
vous lisez à partir d'un InputStream et écrivez dans un OutputStream.
par exemple, supposons que vous souhaitiez copier un fichier. Vous devez créer un FileInputStream pour lire à partir du fichier source et un FileOutputStream pour écrire dans le nouveau fichier.
Si vos données sont un flux de caractères, vous pouvez utiliser un FileReader au lieu d'un InputStream et un FileWriter au lieu d'un OutputStream si vous préférez.
la source
close
flush
es toujours , donc non.OutputStream est une classe abstraite qui représente l'écriture de sortie. Il existe de nombreuses classes OutputStream différentes, et elles écrivent sur certaines choses (comme l'écran, ou Files, ou des tableaux d'octets, ou des connexions réseau, ou etc.). Les classes InputStream accèdent aux mêmes choses, mais elles y lisent des données.
Voici un bon exemple de base d'utilisation de FileOutputStream et FileInputStream pour écrire des données dans un fichier, puis les relire.
la source
Le flux Java est un flux de données d'une source vers une destination. La source ou la destination peut être un disque, une mémoire, un socket ou d'autres programmes. Les données peuvent être des octets, des caractères ou des objets. Il en va de même pour les flux C # ou C ++. Une bonne métaphore pour les ruisseaux Java est l'eau qui coule d'un robinet dans une baignoire et plus tard dans un drainage.
Les données représentent la partie statique du flux; les méthodes de lecture et d'écriture de la partie dynamique du flux.
InputStream
représente un flux de données depuis la source, leOutputStream
représente un flux de données vers la destination. Enfin,InputStream
etOutputStream
sont des abstractions sur l'accès de bas niveau aux données, telles que les pointeurs de fichier C.la source
Flux : En termes simples, le flux est des données, le flux le plus générique est une représentation binaire des données.
Flux d'entrée : si vous lisez des données à partir d'un fichier ou de toute autre source, le flux utilisé est le flux d'entrée. En termes plus simples, le flux d'entrée agit comme un canal pour lire les données.
Flux de sortie : Si vous souhaitez lire et traiter des données à partir d'une source (fichier, etc.), vous devez d'abord enregistrer les données, le moyen de stocker les données est le flux de sortie.
la source
Un flux de sortie est généralement lié à une destination de données comme un fichier ou un réseau, etc. En Java, le flux de sortie est une destination où les données sont finalement écrites et se terminent
la source