Поиск…


Чтение текстового файла с помощью StreamReader

string fullOrRelativePath = "testfile.txt";

string fileData;

using (var reader = new StreamReader(fullOrRelativePath))
{
    fileData = reader.ReadToEnd();
}

Обратите внимание, что эта StreamReader конструктора StreamReader делает некоторое обнаружение автоматического кодирования , которое может или не может соответствовать фактической кодировке, используемой в файле.

Обратите внимание, что есть некоторые удобные методы, которые читают весь текст из файла, доступного в классе System.IO.File , а именно File.ReadAllText(path) и File.ReadAllLines(path) .

Чтение / запись данных с использованием System.IO.File

Сначала давайте посмотрим три разных способа извлечения данных из файла.

string fileText = File.ReadAllText(file);
string[] fileLines = File.ReadAllLines(file);
byte[] fileBytes = File.ReadAllBytes(file);
  • В первой строке мы считываем все данные в файле в виде строки.
  • Во второй строке мы считываем данные в файле в массив строк. Каждая строка в файле становится элементом в массиве.
  • На третьем мы читаем байты из файла.

Затем давайте посмотрим три разных метода добавления данных в файл. Если указанный вами файл не существует, каждый метод автоматически создаст файл, прежде чем пытаться добавить к нему данные.

 File.AppendAllText(file, "Here is some data that is\nappended to the file.");
 File.AppendAllLines(file, new string[2] { "Here is some data that is", "appended to the file." });
 using (StreamWriter stream = File.AppendText(file))
 {
     stream.WriteLine("Here is some data that is");
     stream.Write("appended to the file.");
 }
  • В первой строке мы просто добавляем строку в конец указанного файла.
  • Во второй строке мы добавляем каждый элемент массива в новую строку в файле.
  • Наконец, в третьей строке мы используем File.AppendText чтобы открыть потоковый блок, который добавит все данные, которые будут записаны на него.

И, наконец, давайте посмотрим три разных способа записи данных в файл. Разница между добавлением и записью заключается в том, что запись поверх записи данных в файл при добавлении добавляет данные в файл. Если указанный вами файл не существует, каждый метод автоматически создаст файл, прежде чем пытаться записать данные на него.

File.WriteAllText(file, "here is some data\nin this file.");
File.WriteAllLines(file, new string[2] { "here is some data", "in this file" });
File.WriteAllBytes(file, new byte[2] { 0, 255 });
  • Первая строка записывает строку в файл.
  • Вторая строка записывает каждую строку в массив в своей собственной строке в файле.
  • Третья строка позволяет вам написать массив байтов в файл.

Последовательные порты, использующие System.IO.SerialPorts

Итерация по подключенным последовательным портам

using System.IO.Ports;
string[] ports = SerialPort.GetPortNames();
for (int i = 0; i < ports.Length; i++)
{
    Console.WriteLine(ports[i]);
}

Создание объекта System.IO.SerialPort

using System.IO.Ports;
SerialPort port = new SerialPort();
SerialPort port = new SerialPort("COM 1"); ;
SerialPort port = new SerialPort("COM 1", 9600);

ПРИМЕЧАНИЕ . Это всего лишь три из семи перегрузок конструктора для типа SerialPort.


Чтение / запись данных через SerialPort

Самый простой способ - использовать методы SerialPort.Read и SerialPort.Write . Однако вы также можете получить объект System.IO.Stream который можно использовать для потоковой передачи данных через SerialPort. Для этого используйте SerialPort.BaseStream .

чтение

int length = port.BytesToRead;
//Note that you can swap out a byte-array for a char-array if you prefer.
byte[] buffer = new byte[length];
port.Read(buffer, 0, length);

Вы также можете прочитать все доступные данные:

string curData = port.ReadExisting();

Или просто прочитайте первую новую строку, встречающуюся во входящих данных:

string line = port.ReadLine();

Пишу

Самый простой способ записи данных через SerialPort:

port.Write("here is some text to be sent over the serial port.");

Однако вы также можете отправлять данные по мере необходимости:

//Note that you can swap out the byte-array with a char-array if you so choose.
byte[] data = new byte[1] { 255 };
port.Write(data, 0, data.Length);


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow