.NET Framework
System.IO
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);