MyTetra Share
Делитесь знаниями!
Практическое руководство. Запись текста в файл
Время создания: 25.03.2018 00:13
Раздел: VB
Запись: xintrea/mytetra_db_adgaver_new/master/base/1521926020abxj1g09sz/text.html на raw.githubusercontent.com

Практическое руководство. Запись текста в файл В этом разделе показаны различные способы, которыми можно записать текст в файл для приложений .NET Framework или приложений Магазин Windows 8.x . Для записи текста в файл обычно используются следующие классы и методы.

  • StreamWriter — содержит методы для записи в файл синхронно (Write или WriteLine ) или асинхронно (WriteAsync и WriteLineAsync ).
  • File — используется с приложениями .NET Framework. Он предоставляет статические методы для записи текста в файл, такие как WriteAllLines и WriteAllText , или для добавления текста в файл (AppendAllLines , AppendAllText или AppendText ).
  • FileIO — для использования с приложениями Магазин Windows 8.x . Он содержит асинхронные методы для записи текста в файл (WriteLinesAsync или WriteTextAsync ) или добавления текста в файл (AppendLinesAsync или AppendTextAsync ).

Примеры довольно просты, чтобы сосредоточить внимание на выполняемой задаче. По этой причине в этих примерах проверка ошибок и обработка исключений выполняется в минимальном объеме или отсутствует вовсе. Реальное приложение обычно обеспечивает более надежную проверку ошибок и обработку исключений.

Пример

В следующем примере показано, как синхронно записать текст в новый файл с помощью класса StreamWriter по одной строке за раз. Новый текстовый файл сохраняется в пользовательской папке "Мои документы". Поскольку объект StreamWriter объявляется и создается в инструкции using , вызывается метод Dispose , который автоматически выполняет очистку и закрывает поток.

VB

' Create a string array with the lines of text

Dim lines() As String = {"First line", "Second line", "Third line"}


' Set a variable to the My Documents path.

Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)


' Write the string array to a new file named "WriteLines.txt".

Using outputFile As New StreamWriter(mydocpath & Convert.ToString("\WriteLines.txt"))

For Each line As String In lines

outputFile.WriteLine(line)

Next

End Using



Пример

В следующем примере показано, как добавить текст в существующий файл с помощью класса StreamWriter . В нем используется текстовый файл из предыдущего примера.

VB

' Set a variable to the My Documents path.

Dim mydocpath As String =

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)


' Append text to an existing file named "WriteLines.txt".

Using outputFile As New StreamWriter(mydocpath & Convert.ToString("\WriteLines.txt"), True)

outputFile.WriteLine("Fourth Line")

End Using



Пример

В следующем примере показано, как асинхронно записать текст в новый файл с помощью класса StreamWriter . Для вызова метода WriteAsync этот вызов должен быть в методе async . Новый текстовый файл сохраняется в пользовательской папке "Мои документы".

VB

Shared Async Sub WriteTextAsync(text As String)

' Set a variable to the My Documents path.

Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)


' Write the text asynchronously to a new file named "WriteTextAsync.txt".

Using outputFile As New StreamWriter(mydocpath & Convert.ToString("\WriteTextAsync.txt"))

Await outputFile.WriteAsync(text)

End Using

End Sub



Пример

В следующем примере показано, как записать текст в новый файл и добавить новые строки текста в тот же файл с помощью класса File . Методы WriteAllText и AppendAllLines открывают и закрывают файл автоматически. Если предоставленный в метод WriteAllText путь уже существует, файл будет перезаписан.

VB

' Create a string array with the lines of text

Dim text As String = "First line" & Environment.NewLine


' Set a variable to the My Documents path.

Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)


' Write the text to a new file named "WriteFile.txt".

File.WriteAllText(mydocpath & Convert.ToString("\WriteFile.txt"), text)


' Create a string array with the additional lines of text

Dim lines() As String = {"New line 1", "New line 2"}


' Append new lines of text to the file

File.AppendAllLines(mydocpath & Convert.ToString("\WriteFile.txt"), lines)



Пример

В следующем примере показано, как асинхронно записать введенные пользователем данные в текстовый файл в приложении Магазин Windows 8.x . По соображениям безопасности для открытия файла из Магазин Windows 8.x приложения обычно требуется использование элемента управления FileOpenPicker . В этом примере FileOpenPicker фильтруется для отображения текстовых файлов.

XAML

<Page

x:Class="OpenFileWindowsStore.MainPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:local="using:OpenFileWindowsStore"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

mc:Ignorable="d">


<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

<Button Content="save text to a file" HorizontalAlignment="Left" Margin="103,417,0,0" VerticalAlignment="Top"

Width="329" Height="86" FontSize="35" Click="Button_Click"/>

<TextBox Name="UserInputTextBox" FontSize="18" HorizontalAlignment="Left" Margin="106,146,0,0"

TextWrapping="Wrap" Text="Write some text here, and select a file to write it to." VerticalAlignment="Top"

Height="201" Width="558" AcceptsReturn="True"/>

<TextBlock Name="StatusTextBox" HorizontalAlignment="Left" Margin="106,570,0,147" TextWrapping="Wrap" Text="Status:"

VerticalAlignment="Center" Height="51" Width="1074" FontSize="18" />

</Grid>

</Page>



VB

Imports System.IO

Imports System.Runtime.InteropServices.WindowsRuntime

Imports Windows.UI.Xaml

Imports Windows.UI.Xaml.Controls

Imports Windows.Storage

Imports System.Text

Imports Windows.Storage.Pickers

Imports Windows.UI.Popups

Partial Public NotInheritable Class MainPage

Inherits Page

Public Sub New()

Me.InitializeComponent()

End Sub


' Create a file picker to open a file. Most file access in Windows Store Apps

' requires the use of a file picker for security purposes.

Private picker As New FileOpenPicker()

Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)


' Set properties on the file picker such as start location and the type

' of files to display.

picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary

picker.ViewMode = PickerViewMode.List

picker.FileTypeFilter.Add(".txt")


' Show picker enabling user to pick one file.

Dim result As StorageFile = Await picker.PickSingleFileAsync()


If result IsNot Nothing Then

Try

' Use FileIO to replace the content of the text file

Await FileIO.WriteTextAsync(result, UserInputTextBox.Text)


' Display a success message

StatusTextBox.Text = "Status: File saved successfully"

Catch ex As Exception

' Display an error message

StatusTextBox.Text = "Status: error saving the file - " + ex.Message

End Try

Else

StatusTextBox.Text = "Status: User cancelled save operation"

End If

End Sub

End Class




См. также

StreamWriter
File.CreateText
Практическое руководство. Перечисление каталогов и файлов
Практическое руководство. Считывание из нового файла данных и запись в этот файл
Практическое руководство. Открытие файла журнала и добавление в него данных
Практическое руководство. Считывание текста из файла
Файловый и потоковый ввод-вывод

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования