FileStream Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет Stream для файла, поддерживая синхронные и асинхронные операции чтения и записи.
public ref class FileStream : System::IO::Stream
public class FileStream : System.IO.Stream
[System.Runtime.InteropServices.ComVisible(true)]
public class FileStream : System.IO.Stream
type FileStream = class
inherit Stream
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileStream = class
inherit Stream
Public Class FileStream
Inherits Stream
- Наследование
- Наследование
- Производный
- Атрибуты
В следующем примере показаны некоторые конструкторы FileStream.
using namespace System;
using namespace System::IO;
using namespace System::Text;
void AddText( FileStream^ fs, String^ value )
{
array<Byte>^info = (gcnew UTF8Encoding( true ))->GetBytes( value );
fs->Write( info, 0, info->Length );
}
int main()
{
String^ path = "c:\\temp\\MyTest.txt";
// Delete the file if it exists.
if ( File::Exists( path ) )
{
File::Delete( path );
}
//Create the file.
{
FileStream^ fs = File::Create( path );
try
{
AddText( fs, "This is some text" );
AddText( fs, "This is some more text," );
AddText( fs, "\r\nand this is on a new line" );
AddText( fs, "\r\n\r\nThe following is a subset of characters:\r\n" );
for ( int i = 1; i < 120; i++ )
{
AddText( fs, Convert::ToChar( i ).ToString() );
//Split the output at every 10th character.
if ( Math::IEEERemainder( Convert::ToDouble( i ), 10 ) == 0 )
{
AddText( fs, "\r\n" );
}
}
}
finally
{
if ( fs )
delete (IDisposable^)fs;
}
}
//Open the stream and read it back.
{
FileStream^ fs = File::OpenRead( path );
try
{
array<Byte>^b = gcnew array<Byte>(1024);
UTF8Encoding^ temp = gcnew UTF8Encoding( true );
while ( fs->Read( b, 0, b->Length ) > 0 )
{
Console::WriteLine( temp->GetString( b ) );
}
}
finally
{
if ( fs )
delete (IDisposable^)fs;
}
}
}
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
// Delete the file if it exists.
if (File.Exists(path))
{
File.Delete(path);
}
//Create the file.
using (FileStream fs = File.Create(path))
{
AddText(fs, "This is some text");
AddText(fs, "This is some more text,");
AddText(fs, "\r\nand this is on a new line");
AddText(fs, "\r\n\r\nThe following is a subset of characters:\r\n");
for (int i=1;i < 120;i++)
{
AddText(fs, Convert.ToChar(i).ToString());
}
}
//Open the stream and read it back.
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
int readLen;
while ((readLen = fs.Read(b,0,b.Length)) > 0)
{
Console.WriteLine(temp.GetString(b,0,readLen));
}
}
}
private static void AddText(FileStream fs, string value)
{
byte[] info = new UTF8Encoding(true).GetBytes(value);
fs.Write(info, 0, info.Length);
}
}
open System
open System.IO
open System.Text
let addText (fs:FileStream) (value: string) =
let info = UTF8Encoding(true).GetBytes value
fs.Write(info, 0, info.Length);
let path = @"c:\temp\MyTest.txt"
// Delete the file if it exists.
if File.Exists path then
File.Delete path
//Create the file.
do
use fs = File.Create path
addText fs "This is some text"
addText fs "This is some more text,"
addText fs "\r\nand this is on a new line"
addText fs "\r\n\r\nThe following is a subset of characters:\r\n"
for i = 1 to 119 do
Convert.ToChar i
|> string
|> addText fs
do
//Open the stream and read it back.
use fs = File.OpenRead path
let b = Array.zeroCreate 1024
let temp = UTF8Encoding true
let mutable readLen = fs.Read(b,0,b.Length);
while readLen> 0 do
printfn $"{temp.GetString(b,0,readLen)}"
readLen <- fs.Read(b,0,b.Length)
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
' Delete the file if it exists.
If File.Exists(path) Then
File.Delete(path)
End If
'Create the file.
Dim fs As FileStream = File.Create(path)
AddText(fs, "This is some text")
AddText(fs, "This is some more text,")
AddText(fs, Environment.NewLine & "and this is on a new line")
AddText(fs, Environment.NewLine & Environment.NewLine)
AddText(fs, "The following is a subset of characters:" & Environment.NewLine)
Dim i As Integer
For i = 1 To 120
AddText(fs, Convert.ToChar(i).ToString())
Next
fs.Close()
'Open the stream and read it back.
fs = File.OpenRead(path)
Dim b(1023) As Byte
Dim temp As UTF8Encoding = New UTF8Encoding(True)
Do While fs.Read(b, 0, b.Length) > 0
Console.WriteLine(temp.GetString(b))
Loop
fs.Close()
End Sub
Private Shared Sub AddText(ByVal fs As FileStream, ByVal value As String)
Dim info As Byte() = New UTF8Encoding(True).GetBytes(value)
fs.Write(info, 0, info.Length)
End Sub
End Class
В следующем примере показано, как выполнять асинхронную запись в файл. Этот код выполняется в приложении WPF с именем TextBlock с именем UserInput и кнопкой, подключенной к обработчику событий Click, который называется Button_Click. Путь к файлу необходимо изменить на файл, который существует на компьютере.
using System;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.IO;
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
UnicodeEncoding uniencoding = new UnicodeEncoding();
string filename = @"c:\Users\exampleuser\Documents\userinputlog.txt";
byte[] result = uniencoding.GetBytes(UserInput.Text);
using (FileStream SourceStream = File.Open(filename, FileMode.OpenOrCreate))
{
SourceStream.Seek(0, SeekOrigin.End);
await SourceStream.WriteAsync(result, 0, result.Length);
}
}
}
}
Imports System.IO
Imports System.Text
Class MainWindow
Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim uniencoding As UnicodeEncoding = New UnicodeEncoding()
Dim filename As String = "c:\Users\exampleuser\Documents\userinputlog.txt"
Dim result As Byte() = uniencoding.GetBytes(UserInput.Text)
Using SourceStream As FileStream = File.Open(filename, FileMode.OpenOrCreate)
SourceStream.Seek(0, SeekOrigin.End)
Await SourceStream.WriteAsync(result, 0, result.Length)
End Using
End Sub
End Class
Дополнительные сведения об этом API см. в дополнительных примечаниях API для FileStream.
File |
Устаревшие..
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр класса FileStream для указанного дескриптора файла с указанным разрешением на чтение и запись. |
File |
Устаревшие..
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр класса FileStream для указанного дескриптора файлов с указанным разрешением на чтение и запись и |
File |
Устаревшие..
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр класса FileStream для указанного дескриптора файла с указанным разрешением на чтение и запись, |
File |
Устаревшие..
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр класса FileStream для указанного дескриптора файлов с указанным разрешением на чтение и запись, |
File |
Инициализирует новый экземпляр класса FileStream для указанного дескриптора файла с указанным разрешением на чтение и запись. |
File |
Инициализирует новый экземпляр класса FileStream для указанного дескриптора файла с указанным разрешением на чтение и запись, а также размером буфера. |
File |
Инициализирует новый экземпляр класса FileStream для указанного дескриптора файла с указанным разрешением на чтение и запись, размером буфера и синхронным или асинхронным состоянием. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем и режимом создания. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания и разрешением на чтение и запись. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания, разрешением на чтение и запись и разрешением на общий доступ. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания, разрешением на чтение и запись и общий доступ, а также размером буфера. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания, разрешением на чтение и запись и совместное использование, размером буфера и синхронным или асинхронным состоянием. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания, разрешением на чтение и запись и общий доступ, доступ к другим файлам может иметь тот же файл, размер буфера и дополнительные параметры файла. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания, правами доступа и разрешением на общий доступ, размером буфера и дополнительными параметрами файла. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания, правами доступа и разрешением общего доступа, размером буфера, дополнительными параметрами файлов, контролем доступа и безопасностью аудита. |
File |
Инициализирует новый экземпляр класса FileStream с указанным путем, режимом создания, разрешением на чтение и запись, размером буфера, дополнительными параметрами файла, размером предварительного расположения и доступом к другим файлам файловых потоков может иметь тот же файл. |
Can |
Возвращает значение, указывающее, поддерживает ли текущий поток чтение. |
Can |
Возвращает значение, указывающее, поддерживает ли текущий поток поиск. |
Can |
Возвращает значение, определяющее, может ли текущий поток истекает время ожидания. (Унаследовано от Stream) |
Can |
Возвращает значение, указывающее, поддерживает ли текущий поток запись. |
Handle |
Устаревшие..
Устаревшие..
Устаревшие..
Возвращает дескриптор файла операционной системы для файла, который инкапсулирует текущий объект |
Is |
Возвращает значение, указывающее, был ли |
Length |
Возвращает длину в байтах потока. |
Name |
Возвращает абсолютный путь к файлу, открываемого в |
Position |
Возвращает или задает текущую позицию данного потока. |
Read |
Возвращает или задает значение в миллисекундах, которое определяет, сколько времени поток попытается прочитать до истечения времени ожидания. (Унаследовано от Stream) |
Safe |
Возвращает объект SafeFileHandle, представляющий дескриптор файла операционной системы для файла, который инкапсулирует текущий объект FileStream. |
Write |
Возвращает или задает значение в миллисекундах, определяющее, сколько времени поток попытается записать до истечения времени ожидания. (Унаследовано от Stream) |
Begin |
Начинает асинхронную операцию чтения. Вместо этого рекомендуется использовать ReadAsync(Byte[], Int32, Int32, CancellationToken). |
Begin |
Начинает асинхронную операцию чтения. (Вместо этого рекомендуется использовать ReadAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
Begin |
Начинает асинхронную операцию записи. Вместо этого рекомендуется использовать WriteAsync(Byte[], Int32, Int32, CancellationToken). |
Begin |
Начинает асинхронную операцию записи. (Вместо этого рекомендуется использовать WriteAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
Close() |
Закрывает текущий поток и освобождает все ресурсы (например, сокеты и дескрипторы файлов), связанные с текущим потоком. |
Close() |
Закрывает текущий поток и освобождает все ресурсы (например, сокеты и дескрипторы файлов), связанные с текущим потоком. Вместо вызова этого метода убедитесь, что поток правильно удален. (Унаследовано от Stream) |
Copy |
Считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Предоставляет Stream для файла, поддерживая синхронные и асинхронные операции чтения и записи. |
Copy |
Считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток с помощью указанного маркера отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего файлового потока и записывает их в другой поток, используя указанный размер буфера и маркер отмены. |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера и маркер отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Create |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
Create |
Устаревшие..
Устаревшие..
Устаревшие..
Выделяет объект WaitHandle. (Унаследовано от Stream) |
Dispose() |
Освобождает все ресурсы, используемые Stream. (Унаследовано от Stream) |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые FileStream, и при необходимости освобождает управляемые ресурсы. |
Dispose |
Асинхронно освобождает неуправляемые ресурсы, используемые FileStream. |
Dispose |
Асинхронно освобождает неуправляемые ресурсы, используемые Stream. (Унаследовано от Stream) |
End |
Ожидает завершения ожидающей асинхронной операции чтения. (Вместо этого рекомендуется использовать ReadAsync(Byte[], Int32, Int32, CancellationToken).) |
End |
Ожидает завершения ожидающего асинхронного чтения. (Вместо этого рекомендуется использовать ReadAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
End |
Завершает асинхронную операцию записи и блокируется до завершения операции ввода-вывода. (Вместо этого рекомендуется использовать WriteAsync(Byte[], Int32, Int32, CancellationToken).) |
End |
Завершает асинхронную операцию записи. (Вместо этого рекомендуется использовать WriteAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Finalize() |
Гарантирует, что ресурсы освобождены и другие операции очистки выполняются, когда сборщик мусора освобождает |
Flush() |
Очищает буферы для этого потока и приводит к записи в файл любых буферных данных. |
Flush(Boolean) |
Очищает буферы для этого потока и приводит к записи в файл любых буферных данных, а также очищает все промежуточные буферы файлов. |
Flush |
Асинхронно очищает все буферы для этого потока и приводит к записи всех буферных данных на базовое устройство. (Унаследовано от Stream) |
Flush |
Асинхронно очищает все буферы для этого потока, приводит к записи всех буферных данных на базовое устройство и отслеживает запросы на отмену. |
Flush |
Асинхронно очищает все буферы для этого потока, приводит к записи всех буферных данных на базовое устройство и отслеживает запросы на отмену. (Унаследовано от Stream) |
Get |
Возвращает объект FileSecurity, который инкапсулирует записи списка управления доступом (ACL) для файла, описанного текущим объектом FileStream. |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
Get |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
Initialize |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
Lock(Int64, Int64) |
Запрещает другим процессам чтение или запись в FileStream. |
Memberwise |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
Memberwise |
Создает неглубокую копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
Object |
Устаревшие..
Предоставляет поддержку Contract. (Унаследовано от Stream) |
Read(Byte[], Int32, Int32) |
Считывает блок байтов из потока и записывает данные в заданный буфер. |
Read(Span<Byte>) |
Считывает последовательность байтов из текущего потока файлов и перемещает позицию в потоке файлов по количеству байтов, считываемых. |
Read(Span<Byte>) |
При переопределении в производном классе считывает последовательность байтов из текущего потока и перемещает положение в потоке по количеству байтов, считываемых. (Унаследовано от Stream) |
Read |
Асинхронно считывает последовательность байтов из текущего потока и перемещает позицию в потоке по числу байтов. (Унаследовано от Stream) |
Read |
Асинхронно считывает последовательность байтов из текущего потока файлов и записывает их в массив байтов, начиная с указанного смещения, перемещает позицию в потоке файлов по количеству байтов, считываемых и отслеживает запросы на отмену. |
Read |
Асинхронно считывает последовательность байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
Read |
Асинхронно считывает последовательность байтов из текущего потока файлов и записывает их в область памяти, перемещает позицию в потоке файлов по количеству байтов чтения и отслеживает запросы на отмену. |
Read |
Асинхронно считывает последовательность байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
Read |
Считывает по крайней мере минимальное количество байтов из текущего потока и перемещает положение в потоке по количеству байтов, считываемых. (Унаследовано от Stream) |
Read |
Асинхронно считывает по крайней мере минимальное количество байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
Read |
Считывает байт из файла и перемещает позицию чтения один байт. |
Read |
Считывает |
Read |
Считывает байты из текущего потока и перемещает позицию в потоке до заполнения |
Read |
Асинхронно считывает |
Read |
Асинхронно считывает байты из текущего потока, перемещает положение в потоке до заполнения |
Seek(Int64, Seek |
Задает текущее положение этого потока в заданное значение. |
Set |
Применяет записи списка управления доступом (ACL), описанные объектом FileSecurity к файлу, описанному текущим объектом FileStream. |
Set |
Задает длину этого потока заданному значению. |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Unlock(Int64, Int64) |
Разрешает доступ другим процессам ко всем или части файла, который ранее был заблокирован. |
Write(Byte[], Int32, Int32) |
Записывает блок байтов в поток файлов. |
Write(Read |
Записывает последовательность байтов из диапазона только для чтения в текущий файловый поток и перемещает текущую позицию в этом потоке файлов по количеству записанных байтов. |
Write(Read |
При переопределении в производном классе записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от Stream) |
Write |
Асинхронно записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от Stream) |
Write |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. |
Write |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
Write |
Асинхронно записывает последовательность байтов из области памяти в текущий файловый поток, перемещает текущую позицию в этом потоке файлов по количеству записанных байтов и отслеживает запросы на отмену. |
Write |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
Write |
Записывает байт в текущую позицию в потоке файлов. |
IDisposable. |
Освобождает все ресурсы, используемые Stream. (Унаследовано от Stream) |
Get |
Возвращает сведения о безопасности файла. |
Set |
Изменяет атрибуты безопасности существующего файла. |
Copy |
Асинхронно считывает байты из Stream и записывает их в указанный PipeWriterс помощью маркера отмены. |
As |
Преобразует управляемый поток в .NET для приложений Магазина Windows в входной поток в среде выполнения Windows. |
As |
Преобразует управляемый поток в .NET для приложений Магазина Windows в выходной поток в среде выполнения Windows. |
As |
Преобразует указанный поток в поток случайного доступа. |
Configure |
Настраивает способ ожидания задач, возвращаемых из асинхронного удаления. |
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: