Clase FileStream
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.filestream?view=netframework-4.8
Espacio de nombres: System.IO
Ensamblado: mscorlib.dll
Proporcione Stream para archivos , admitiendo tanto operaciones de lectura y escritura sincrónicas como operaciones de lectura y escritura asincrónicas.
Comentario
Utilice la clase FileStream para leer, escribir, abrir y cerrar archivos en el sistema de archivos. También puede manipular otros identificadores del sistema operativo relacionados con los archivos, incluidas las canalizaciones, la entrada estándar y la salida estándar. Puede usar los métodos Read , Write , CopyTo y Flush para realizar operaciones sincrónicas, o los métodos ReadAsync , WriteAsync , CopyToAsync y FlushAsync para realizar operaciones asincrónicas. Use métodos asincrónicos para realizar operaciones de archivo con uso intensivo de recursos sin bloquear el hilo principal. Esta consideración de rendimiento es especialmente importante cuando una operación de flujo que lleva mucho tiempo en una aplicación de tienda de aplicaciones de Windows 8.x o una aplicación de escritorio puede bloquear el hilo de la interfaz de usuario y hacer que su aplicación parezca que no funciona. FileStream almacena entradas y salidas para mejorar el rendimiento.
Importante
Este tipo implementa la interfaz IDisposable . Después de usar el tipo, debe liberar el tipo directa o indirectamente. Para liberar el tipo directamente , llame a su método en Disposetry
/ block catch
. Para liberar tipos indirectamente, use construcciones de lenguaje using
(en C #) o Using
(en Visual Basic). Para obtener más información, consulte la sección "Uso de objetos que implementan IDisposable" en el tema de la interfaz IDisposable .
La propiedad IsAsync detecta si el identificador de archivo se ha abierto de forma asincrónica. Tener isAsync
, useAsync
o options
crear un constructor parámetro FileStream clase ejemplo, puede especificar este valor. Si se true
atribuye, la secuencia utilizará E / S superpuestas para realizar operaciones de archivo de forma asincrónica. Sin embargo, no es necesario llamar a los métodos ReadAsync , WriteAsync o CopyToAsync con el atributo true
IsAsync . Cuando se llama a la propiedad IsAsync y se llaman a las operaciones asíncronas de lectura y escritura, el subproceso de la interfaz de usuario aún no se bloqueará, pero las operaciones de E / S reales se realizarán sincrónicamente. El método Seek admite acceso aleatorio a archivos. Seek permite mover la posición de lectura / escritura a cualquier posición en el archivo. Esto se logra haciendo referencia al parámetro de punto por byte offset. El desplazamiento de bytes es relativo al punto de referencia de búsqueda. Puede ser el comienzo, la posición actual o el final del archivo base y está representado por los tres miembros enumerados por SeekOrigin .false
Al usar esta clase, primero debe definir una instancia de esta clase, es decir, un objeto, y leer y escribir archivos usando las propiedades y métodos de este objeto. El objeto de flujo de archivos se define de la siguiente manera:
Objeto Dim como objeto FileStream
= NewFileStream (ruta, modo, acceso, compartir, tamaño de búfer, isAsync)
El significado de cada valor de parámetro del constructor de flujo de archivos es el siguiente:
- ruta, nombre de ruta del archivo:
- Modo, arado de clase de enumeración FileMode, modo de archivo abierto;
- Access, el tipo de enumeración FileAccess, determina cómo el objeto FileStream accede al archivo;
- Compartir, tipo de enumeración FileShare, método para compartir archivos;
- Buffersize, el buffer requerido es pequeño;
- isAsync, entrada y salida síncrona o asíncrona.
El constructor de FileStream se puede sobrecargar varias veces. Al crear un nuevo objeto de flujo de archivos, solo se pueden dar los primeros parámetros.
Los valores del tipo de enumeración FileMode incluyen:
- Anexar, agregar al final del archivo;
- Crear, crear un archivo, puede sobrescribir;
- CrcateNew, crea un nuevo archivo;
Abrir, abrir el archivo:
- OpenOrCreate, abra el archivo y créelo si no existe.
Los valores del tipo de enumeración FileAccess incluyen:
- Leer, el acceso al archivo es leer el archivo;
- ReadWrite, lee y escribe archivos;
- Escribir, escribir archivos.
Los valores del tipo de enumeración FileShare incluyen:
- Leer, permitiendo que otros usuarios lean y accedan al archivo;
- ReadWrite, que permite a otros usuarios leer y escribir el acceso a los archivos;
- Escribir, permite a otros usuarios escribir en el archivo.
Después de definir el objeto de flujo de archivos, el contenido del archivo puede leerse con el método de lectura, y el contenido del archivo puede reescribirse con el método de escritura. Los métodos de lectura y escritura tienen tres parámetros: el primer parámetro es una matriz, que representa los datos leídos del archivo o la matriz escrita en el archivo; el segundo parámetro representa la posición inicial de la lectura o escritura; el tercer parámetro representa Esta operación debe procesar varios datos.
El archivo se cierra con el método Cerrar.
Módulo Módulo1
Sub Main ()
testStream ()
Console.Read ()
End Sub
Private Sub testStream ()
Dim DataWrite (10) Como Byte
Dim DataRead (10) Como Byte
Dim i Como Entero
Para i = 0 a 10
DataWrite (i) = i * 3
Siguiente
Dim testFs As IO.FileStream
testFs = New IO.FileStream ("J: \ test \ Stream.txt", IO.FileMode.OpenOrCreate, IO.FileAccess.Write)
testFs.Write (DataWrite, 0, 11)
testFs.Close ( )
testFs = Nuevo IO.FileStream ("J: \ test \ Stream.txt", IO.FileMode.Open, IO.FileAccess.Read)
testFs.Read (DataRead, 0, 11)
testFs.Close ()
Para i = 0 a 10
Console.WriteLine (DataRead (i))
Next
End Sub
End Module