通过StreamReader怎么获取文件第一行和最后一行并打印出来
时间: 2024-01-22 09:02:13 浏览: 314
可以通过以下代码来实现:
```csharp
using System.IO;
// 读取文件的第一行和最后一行
string firstLine, lastLine;
using (StreamReader reader = new StreamReader("filename.txt"))
{
firstLine = reader.ReadLine(); // 读取第一行
string line;
while ((line = reader.ReadLine()) != null) // 读取最后一行
{
lastLine = line;
}
}
// 打印第一行和最后一行
Console.WriteLine("第一行:" + firstLine);
Console.WriteLine("最后一行:" + lastLine);
```
这段代码首先使用 `StreamReader` 打开文件,然后通过 `ReadLine()` 方法读取第一行。接着,使用一个 `while` 循环读取文件的每一行,直到读到最后一行,将最后一行的内容赋值给 `lastLine` 变量。最后,使用 `Console.WriteLine()` 打印出第一行和最后一行的内容。
相关问题
C#读取txt文件某一行并打印
在C#中,你可以使用`StreamReader`类来逐行读取txt文件。以下是一个简单的示例,演示如何读取并打印指定行的内容:
```csharp
using System;
using System.IO;
class Program
{
static void Main()
{
// 文件路径
string filePath = "path_to_your_file.txt";
try
{
// 创建StreamReader实例,并打开文件
using (StreamReader reader = new StreamReader(filePath))
{
// 如果你想读取第n行,可以先获取总行数,然后减去1得到索引
int lineNumber = 5; // 假设你想读第5行
int lineCount = CountLines(reader); // 获取总行数
if (lineNumber <= lineCount)
{
// 读取指定行
string line = reader.ReadLine(lineNumber - 1);
Console.WriteLine("第{0}行内容: {1}", lineNumber, line);
}
else
{
Console.WriteLine("指定的行号超出了文件的实际行数。");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"发生错误: {ex.Message}");
}
}
// 辅助函数,用于计算文件总行数
static int CountLines(StreamReader reader)
{
long currentLine = 0;
string line;
while ((line = reader.ReadLine()) != null)
{
currentLine++;
}
return (int)currentLine;
}
}
```
在这个例子中,你需要将`path_to_your_file.txt`替换为你要读取的txt文件的实际路径。如果你想打印当前行,只需省略行号部分。
C#读取TXT文件,获取特殊字符串所在的行
在C#中,你可以使用`StreamReader`或`File.ReadLines`来读取TXT文件,并通过循环遍历每一行来查找特定的字符串。这里是一个基本示例:
```csharp
using System;
using System.IO;
public class Program {
public static void Main(string[] args) {
string filePath = "path_to_your_text_file.txt"; // 替换为你的文本文件路径
string targetString = "your_search_string"; // 要查找的字符串
try {
using (StreamReader reader = new StreamReader(filePath)) {
string line;
int lineNumber = 0;
while ((line = reader.ReadLine()) != null) {
lineNumber++;
if (line.Contains(targetString)) {
Console.WriteLine($"找到字符串 '{targetString}',它位于第 {lineNumber} 行");
break; // 找到就退出循环
}
}
}
} catch (Exception ex) {
Console.WriteLine($"错误发生: {ex.Message}");
}
// 如果你想获取所有包含目标字符串的行,可以移除break语句
}
}
```
这个程序会逐行读取文件,当遇到目标字符串时,它会打印出该行号以及字符串内容。如果需要查找所有匹配的行,只需移除`break`语句即可。
阅读全文