Szukaj…


Odczytywanie pliku tekstowego za pomocą StreamReadera

string fullOrRelativePath = "testfile.txt";

string fileData;

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

Zauważ, że to przeciążenie konstruktora StreamReader powoduje pewne automatyczne wykrywanie kodowania , które może, ale nie musi, odpowiadać faktycznemu kodowaniu stosowanemu w pliku.

Należy pamiętać, że istnieje kilka metod wygody, które odczytują cały tekst z pliku dostępnych w klasie System.IO.File , a mianowicie File.ReadAllText(path) i File.ReadAllLines(path) .

Odczytywanie / zapisywanie danych za pomocą System.IO.File

Najpierw zobaczmy trzy różne sposoby wyodrębniania danych z pliku.

string fileText = File.ReadAllText(file);
string[] fileLines = File.ReadAllLines(file);
byte[] fileBytes = File.ReadAllBytes(file);
  • W pierwszym wierszu czytamy wszystkie dane w pliku jako ciąg.
  • W drugim wierszu wczytujemy dane z pliku do tablicy ciągów. Każda linia w pliku staje się elementem tablicy.
  • Na trzecim czytamy bajty z pliku.

Następnie zobaczmy trzy różne metody dołączania danych do pliku. Jeśli określony plik nie istnieje, każda metoda automatycznie utworzy plik przed próbą dołączenia do niego danych.

 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.");
 }
  • W pierwszym wierszu po prostu dodajemy ciąg na końcu określonego pliku.
  • W drugim wierszu dodajemy każdy element tablicy do nowej linii w pliku.
  • Wreszcie w trzecim wierszu używamy File.AppendText aby otworzyć streamwriter, który doda wszystkie zapisane na nim dane.

Na koniec zobaczmy trzy różne metody zapisywania danych do pliku. Różnica między dołączanie i pisanie, że pisanie jest nadmiernie zapisuje dane w pliku podczas dołączanie dodaje do danych zawartych w pliku. Jeśli określony plik nie istnieje, każda metoda automatycznie utworzy plik przed próbą zapisania danych.

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 });
  • Pierwszy wiersz zapisuje ciąg do pliku.
  • Drugi wiersz zapisuje każdy ciąg w tablicy na swojej własnej linii w pliku.
  • Trzecia linia pozwala zapisać tablicę bajtów do pliku.

Porty szeregowe korzystające z System.IO.SerialPorts

Iteracja po podłączonych portach szeregowych

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

Tworzenie wystąpienia obiektu System.IO.SerialPort

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

UWAGA : To tylko trzy z siedmiu przeciążeń konstruktora dla typu SerialPort.


Odczyt / zapis danych przez port szeregowy

Najprostszym sposobem jest użycie metod SerialPort.Read i SerialPort.Write . Można jednak również pobrać obiekt System.IO.Stream którego można użyć do przesyłania strumieniowego danych przez port SerialPort. Aby to zrobić, użyj SerialPort.BaseStream .

Czytanie

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);

Możesz także przeczytać wszystkie dostępne dane:

string curData = port.ReadExisting();

Lub po prostu przeczytaj pierwszy znak nowej linii napotkany w przychodzących danych:

string line = port.ReadLine();

Pisanie

Najłatwiejszym sposobem zapisywania danych przez SerialPort jest:

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

W razie potrzeby możesz jednak przesłać takie dane w następujący sposób:

//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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow