StreamReader Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Implémente un TextReader qui lit les caractères d’un flux d’octets dans un encodage particulier.
public ref class StreamReader : System::IO::TextReader
public class StreamReader : System.IO.TextReader
[System.Serializable]
public class StreamReader : System.IO.TextReader
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StreamReader : System.IO.TextReader
type StreamReader = class
inherit TextReader
[<System.Serializable>]
type StreamReader = class
inherit TextReader
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamReader = class
inherit TextReader
Public Class StreamReader
Inherits TextReader
- Héritage
- Héritage
- Attributs
Exemples
L’exemple suivant utilise une instance de lecture de StreamReader texte à partir d’un fichier. Le constructeur utilisé dans cet exemple n’est pas pris en charge pour une utilisation dans les applications du Windows Store.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader("TestFile.txt"))
{
string line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
}
Imports System.IO
Class Test
Public Shared Sub Main()
Try
' Create an instance of StreamReader to read from a file.
Dim sr As StreamReader = New StreamReader("TestFile.txt")
Dim line As String
' Read and display the lines from the file until the end
' of the file is reached.
Do
line = sr.ReadLine()
Console.WriteLine(Line)
Loop Until line Is Nothing
sr.Close()
Catch E As Exception
' Let the user know what went wrong.
Console.WriteLine("The file could not be read:")
Console.WriteLine(E.Message)
End Try
End Sub
End Class
L’exemple suivant instancie un StreamReader objet et appelle sa ReadAsync méthode pour lire un fichier de façon asynchrone.
using System;
using System.IO;
using System.Threading.Tasks;
class Example
{
static async Task Main()
{
await ReadAndDisplayFilesAsync();
}
static async Task ReadAndDisplayFilesAsync()
{
String filename = "TestFile1.txt";
Char[] buffer;
using (var sr = new StreamReader(filename)) {
buffer = new Char[(int)sr.BaseStream.Length];
await sr.ReadAsync(buffer, 0, (int)sr.BaseStream.Length);
}
Console.WriteLine(new String(buffer));
}
}
// The example displays the following output:
// This is the first line of text in a relatively short file.
// This is the second line.
// This is the third line.
// This is the fourth and final line.
Imports System.IO
Imports System.Threading.Tasks
Module Example
Public Sub Main()
ReadAndDisplayFilesAsync()
End Sub
Private Async Sub ReadAndDisplayFilesAsync()
Dim filename As String = "TestFile1.txt"
Dim buffer() As Char
Using sr As New StreamReader(filename)
ReDim buffer(CInt(sr.BaseStream.Length))
Await sr.ReadAsync(buffer, 0, CInt(sr.BaseStream.Length))
End Using
Console.WriteLine(New String(buffer))
End Sub
End Module
' The example displays the following output:
' This is the first line of text in a relatively short file.
' This is the second line.
' This is the third line.
' This is the fourth and final line.
Remarques
StreamReader est conçu pour l’entrée de caractères dans un encodage particulier, tandis que la classe est conçue pour l’entrée et la Stream sortie d’octets. Permet StreamReader de lire des lignes d’informations à partir d’un fichier texte standard.
Important
Ce type implémente l’interface IDisposable . Une fois que vous avez fini d’utiliser le type, vous devez le supprimer directement ou indirectement. Pour supprimer directement le type, appelez sa Dispose méthode dans un try/catch bloc. Pour la supprimer indirectement, utilisez une construction de langage telle que using (en C#) ou Using (en Visual Basic). Pour plus d’informations, consultez la section « Utilisation d’un objet implémentant IDisposable » dans la rubrique d’interface IDisposable .
StreamReader est défini par défaut sur l’encodage UTF-8, sauf indication contraire, au lieu d’utiliser la page de codes ANSI pour le système actuel. UTF-8 gère correctement les caractères Unicode et fournit des résultats cohérents sur les versions localisées du système d’exploitation. Si vous obtenez l’encodage de caractère actuel à l’aide de la CurrentEncoding propriété, la valeur n’est pas fiable tant que la première Read méthode n’est pas terminée, car la détection automatique de codage n’est pas effectuée tant que le premier appel à une Read méthode n’est pas effectué.
Par défaut, un StreamReader thread n’est pas sécurisé. Consultez TextReader.Synchronized un wrapper thread-safe.
Les Read(Char[], Int32, Int32) surcharges de méthode et Write(Char[], Int32, Int32) de lecture et d’écriture du nombre de caractères spécifiés par le count paramètre. Il s’agit d’être distingués et BufferedStream.ReadBufferedStream.Writequi lisent et écrivent le nombre d’octets spécifiés par le count paramètre. Utilisez les méthodes uniquement pour la BufferedStream lecture et l’écriture d’un nombre intégral d’éléments de tableau d’octets.
Note
Lors de la lecture à partir d’un Stream, il est plus efficace d’utiliser une mémoire tampon qui est de la même taille que la mémoire tampon interne du flux.
Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches d’E/S courantes.
Constructeurs
| Nom | Description |
|---|---|
| StreamReader(Stream, Boolean) |
Initialise une nouvelle instance de la StreamReader classe pour le flux spécifié, avec l’option de détection de marque d’ordre d’octet spécifiée. |
| StreamReader(Stream, Encoding, Boolean, Int32, Boolean) |
Initialise une nouvelle instance de la StreamReader classe pour le flux spécifié en fonction de l’option d’encodage de caractères, de détection de marque d’octets et de taille de mémoire tampon spécifiée, et laisse éventuellement le flux ouvert. |
| StreamReader(Stream, Encoding, Boolean, Int32) |
Initialise une nouvelle instance de la StreamReader classe pour le flux spécifié, avec l’option d’encodage de caractères, l’option de détection de marque d’octets et la taille de la mémoire tampon spécifiées. |
| StreamReader(Stream, Encoding, Boolean) |
Initialise une nouvelle instance de la StreamReader classe pour le flux spécifié, avec l’option d’encodage de caractères et de détection de marque d’octet spécifiée. |
| StreamReader(Stream, Encoding) |
Initialise une nouvelle instance de la StreamReader classe pour le flux spécifié, avec l’encodage de caractères spécifié. |
| StreamReader(Stream) |
Initialise une nouvelle instance de la StreamReader classe pour le flux spécifié. |
| StreamReader(String, Boolean) |
Initialise une nouvelle instance de la StreamReader classe pour le nom de fichier spécifié, avec l’option de détection de marque d’ordre d’octet spécifiée. |
| StreamReader(String, Encoding, Boolean, FileStreamOptions) |
Initialise une nouvelle instance de la StreamReader classe pour le chemin d’accès de fichier spécifié, avec l’option de détection de marque d’ordre d’octet, et configurée avec l’objet spécifié FileStreamOptions . |
| StreamReader(String, Encoding, Boolean, Int32) |
Initialise une nouvelle instance de la StreamReader classe pour le nom de fichier spécifié, avec l’option d’encodage de caractères, l’option de détection de marque d’octets et la taille de la mémoire tampon spécifiées. |
| StreamReader(String, Encoding, Boolean) |
Initialise une nouvelle instance de la StreamReader classe pour le nom de fichier spécifié, avec l’option d’encodage de caractères et de détection de marque d’octet spécifiée. |
| StreamReader(String, Encoding) |
Initialise une nouvelle instance de la StreamReader classe pour le nom de fichier spécifié, avec l’encodage de caractères spécifié. |
| StreamReader(String, FileStreamOptions) |
Initialise une nouvelle instance de la StreamReader classe pour le chemin d’accès de fichier spécifié, à l’aide de l’encodage par défaut, en activant la détection des marques d’ordre d’octet au début du fichier et configurées avec l’objet spécifié FileStreamOptions . |
| StreamReader(String) |
Initialise une nouvelle instance de la StreamReader classe pour le nom de fichier spécifié. |
Champs
| Nom | Description |
|---|---|
| Null |
Objet StreamReader autour d’un flux vide. |
Propriétés
| Nom | Description |
|---|---|
| BaseStream |
Retourne le flux sous-jacent. |
| CurrentEncoding |
Obtient l’encodage de caractères actuel utilisé par l’objet actuel StreamReader . |
| EndOfStream |
Obtient une valeur qui indique si la position actuelle du flux se trouve à la fin du flux. |
Méthodes
| Nom | Description |
|---|---|
| Close() |
Ferme l’objet StreamReader et le flux sous-jacent et libère toutes les ressources système associées au lecteur. |
| CreateObjRef(Type) |
Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant. (Hérité de MarshalByRefObject) |
| DiscardBufferedData() |
Efface la mémoire tampon interne. |
| Dispose() |
Libère toutes les ressources utilisées par l’objet TextReader . (Hérité de TextReader) |
| Dispose(Boolean) |
Ferme le flux sous-jacent, libère les ressources non managées utilisées par le StreamReader, et libère éventuellement les ressources managées. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetLifetimeService() |
Obsolète.
Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| InitializeLifetimeService() |
Obsolète.
Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| MemberwiseClone(Boolean) |
Crée une copie superficielle de l’objet actuel MarshalByRefObject . (Hérité de MarshalByRefObject) |
| Peek() |
Retourne le caractère disponible suivant, mais ne l’utilise pas. |
| Read() |
Lit le caractère suivant du flux d’entrée et avance la position du caractère d’un caractère. |
| Read(Char[], Int32, Int32) |
Lit un maximum spécifié de caractères du flux actuel dans une mémoire tampon, en commençant à l’index spécifié. |
| Read(Span<Char>) |
Lit les caractères du flux actuel dans une étendue. |
| ReadAsync(Char[], Int32, Int32) |
Lit un nombre maximal spécifié de caractères du flux actuel de manière asynchrone et écrit les données dans une mémoire tampon, en commençant à l’index spécifié. |
| ReadAsync(Memory<Char>, CancellationToken) |
Lit de manière asynchrone les caractères du flux actuel dans un bloc de mémoire. |
| ReadBlock(Char[], Int32, Int32) |
Lit un nombre maximal spécifié de caractères du flux actuel et écrit les données dans une mémoire tampon, en commençant à l’index spécifié. |
| ReadBlock(Char[], Int32, Int32) |
Lit un nombre maximal spécifié de caractères à partir du lecteur de texte actuel et écrit les données dans une mémoire tampon, en commençant à l’index spécifié. (Hérité de TextReader) |
| ReadBlock(Span<Char>) |
Lit les caractères du flux actuel et écrit les données dans une mémoire tampon. |
| ReadBlockAsync(Char[], Int32, Int32) |
Lit un nombre maximal spécifié de caractères du flux actuel de manière asynchrone et écrit les données dans une mémoire tampon, en commençant à l’index spécifié. |
| ReadBlockAsync(Memory<Char>, CancellationToken) |
Lit de façon asynchrone les caractères du flux actuel et écrit les données dans une mémoire tampon. |
| ReadLine() |
Lit une ligne de caractères à partir du flux actuel et retourne les données sous forme de chaîne. |
| ReadLineAsync() |
Lit de façon asynchrone une ligne de caractères à partir du flux actuel et retourne les données sous forme de chaîne. |
| ReadLineAsync(CancellationToken) |
Lit de façon asynchrone une ligne de caractères à partir du flux actuel et retourne les données sous forme de chaîne. |
| ReadToEnd() |
Lit tous les caractères de la position actuelle à la fin du flux. |
| ReadToEndAsync() |
Lit tous les caractères de la position actuelle à la fin du flux de manière asynchrone et les retourne sous forme d’une seule chaîne. |
| ReadToEndAsync(CancellationToken) |
Lit tous les caractères de la position actuelle à la fin du flux de manière asynchrone et les retourne sous forme d’une seule chaîne. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IDisposable.Dispose() |
Pour obtenir une description de ce membre, consultez Dispose(). (Hérité de TextReader) |