|
|||||||
Практическое руководство. Запись текста в файл
Время создания: 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 по одной строке за раз. Новый текстовый файл сохраняется в пользовательской папке "Мои документы". Поскольку объект 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 |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|