Sök…


Läser en textfil med StreamReader

string fullOrRelativePath = "testfile.txt";

string fileData;

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

Observera att denna StreamReader konstruktöröverbelastning gör någon automatisk kodning detektering, som kanske eller inte överensstämmer med den faktiska kodningen som används i filen.

Observera att det finns några bekvämlighetsmetoder som läser all text från fil som finns System.IO.File klassen System.IO.File , nämligen File.ReadAllText(path) och File.ReadAllLines(path) .

Läsa / skriva data med hjälp av System.IO.File

Låt oss först se tre olika sätt att extrahera data från en fil.

string fileText = File.ReadAllText(file);
string[] fileLines = File.ReadAllLines(file);
byte[] fileBytes = File.ReadAllBytes(file);
  • På den första raden läser vi alla data i filen som en sträng.
  • På den andra raden läser vi data i filen i ett sträng-array. Varje rad i filen blir ett element i matrisen.
  • På den tredje läser vi byte från filen.

Låt oss nu se tre olika metoder för att lägga till data till en fil. Om filen du anger inte finns, skapar varje metod automatiskt filen innan du försöker lägga till data till den.

 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.");
 }
  • På den första raden lägger vi helt enkelt till en sträng i slutet av den angivna filen.
  • På den andra raden lägger vi till varje element i matrisen på en ny rad i filen.
  • Slutligen på den tredje raden använder vi File.AppendText att öppna en strömförfattare som kommer att lägga till alla data som skrivs till den.

Och slutligen, låt oss se tre olika metoder för att skriva data till en fil. Skillnaden mellan att lägga till och skriva är att skriva över-skriver data i filen medan du lägger till lägger till data i filen. Om filen du anger inte finns, skapar varje metod automatiskt filen innan du försöker skriva data till den.

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 });
  • Den första raden skriver en sträng till filen.
  • Den andra raden skriver varje sträng i matrisen på sin egen rad i filen.
  • Och den tredje raden låter dig skriva en byte-matris till filen.

Seriella portar med System.IO.SerialPorts

Iterera över anslutna seriella portar

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

Instantiera ett System.IO.SerialPort-objekt

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

OBS : Det här är bara tre av de sju överbelastningarna för konstruktören för SerialPort-typen.


Läsa / skriva data över SerialPort

Det enklaste sättet är att använda SerialPort.Read och SerialPort.Write metoderna. Men du kan också hämta ett System.IO.Stream objekt som du kan använda för att strömma data över SerialPort. SerialPort.BaseStream att göra detta.

Läsning

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

Du kan också läsa alla tillgängliga data:

string curData = port.ReadExisting();

Eller läs helt enkelt till den första nylinjen som möts i inkommande data:

string line = port.ReadLine();

Skrivning

Det enklaste sättet att skriva data över SerialPort är:

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

Men du kan också skicka data så här vid behov:

//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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow