C# 如何防止在我的文件中添加空行?
我正在创建一个文本文件,最后一行是“” 是我用来创建文件(或附加文件)的 现在是DateTime对象 我使用您的(Karl)代码创建了一个名为“readLastDate()的方法” 我得到的是第一次约会。这样做:C# 如何防止在我的文件中添加空行?,c#,streamwriter,C#,Streamwriter,我正在创建一个文本文件,最后一行是“” 是我用来创建文件(或附加文件)的 现在是DateTime对象 我使用您的(Karl)代码创建了一个名为“readLastDate()的方法” 我得到的是第一次约会。这样做: sw.Write(now.ToShortDateString()); 以下是的MSDN文档 以下是的MSDN文档 更新: 继续使用WriteLine,但更改从文件中读取值的方式: using (StreamReader sr = new StreamReader(path)) {
sw.Write(now.ToShortDateString());
以下是的MSDN文档
以下是的MSDN文档
更新:
继续使用WriteLine
,但更改从文件中读取值的方式:
using (StreamReader sr = new StreamReader(path))
{
// Initialize to null so we are not stuck in loop forever in case there is nothing in the file to read
String line = null;
do
{
line = sr.ReadLine();
// Is this the end of the file?
if (line == null)
{
// Yes, so bail out of loop
return;
}
// Is the line empty?
if (line == String.Empty)
{
// Yes, so skip it
continue;
}
// Here you process the non-empty line
} while (true);
}
这样做:
sw.Write(now.ToShortDateString());
以下是的MSDN文档
以下是的MSDN文档
更新:
继续使用WriteLine
,但更改从文件中读取值的方式:
using (StreamReader sr = new StreamReader(path))
{
// Initialize to null so we are not stuck in loop forever in case there is nothing in the file to read
String line = null;
do
{
line = sr.ReadLine();
// Is this the end of the file?
if (line == null)
{
// Yes, so bail out of loop
return;
}
// Is the line empty?
if (line == String.Empty)
{
// Yes, so skip it
continue;
}
// Here you process the non-empty line
} while (true);
}
您是否尝试过使用命令.Trimend('\n')
您是否尝试过使用命令.Trimend('\n')
您可以使用
软件编写并预先挂起换行符。不幸的是,这将在文件开头给您一个空行。您可以使用sw.Write
并预先挂起换行符。不幸的是,这会在文件的开头给你一个空行。我可能是为了实用和简单,但是跳过所有流的东西,直接像这样使用文件
类
string newLine = "";
if (!isFirstLine)
newLine = Environment.NewLine;
File.AppendAllText(
filePath,
string.Format("{0}{1}", newLine, DateTime.Now.ToString()));
我可能是为了实用和简单,但跳过所有流的东西,像这样直接使用File
类
string newLine = "";
if (!isFirstLine)
newLine = Environment.NewLine;
File.AppendAllText(
filePath,
string.Format("{0}{1}", newLine, DateTime.Now.ToString()));
添加记录应该是调用File.AppendAllText
的简单过程,正如另一个答案中所指出的那样。尽管我建议:
File.AppendAllText(filePath, DateTime.Now.ToString() + Environment.NewLine);
从文件中读取最后日期也很容易:
string lastGoodLine = "01/01/1900";
using (StringReader sr = new StringReader(filePath))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (!string.IsNullOrEmpty(line))
lastGoodLine = line;
}
}
return lastGoodLine;
添加记录应该是调用File.AppendAllText
的简单过程,正如另一个答案中所指出的那样。尽管我建议:
File.AppendAllText(filePath, DateTime.Now.ToString() + Environment.NewLine);
从文件中读取最后日期也很容易:
string lastGoodLine = "01/01/1900";
using (StringReader sr = new StringReader(filePath))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (!string.IsNullOrEmpty(line))
lastGoodLine = line;
}
}
return lastGoodLine;
使用Write
,而不是WriteLine
WriteLine
追加一个新行字符。如果这样做,则所有数据都在一行上。我需要每一行都有日期,请不要LINQ。我使用的是.Net 2.0使用Write
,而不是WriteLine
WriteLine
追加一个新行字符。如果这样做,则所有数据都在一行上。我需要每一行都有日期,请不要LINQ。我使用的是.Net 2.0,而不是我的代码。(除了写入对我来说不起作用,因为当应用程序运行第2次、第3次、第100次时,所有数据都在一行上)。我每行需要1个日期你是在循环中写这些吗?@CocoaDev:然后在换行之前:sw.WriteLine();Write(now.ToShortDateString())代码>。这意味着空文本文件中的第一项将为空,但您可以轻松地手动更正它,或在写入之前进行检查,以确定它是否为第一行。否。应用程序启动时会检查文件中的日期。如果它本月已经运行,我们将退出。否则我们会工作,一旦退出,我们会将日期写入文本文件。我使用WriteLine是因为每个日期都必须在一个新的日期line@CocoaDev-你的问题是,当你在读取文件中的行时,在文件结尾遇到空白行吗?这就是我的代码。(除了写入对我来说不起作用,因为当应用程序运行第2次、第3次、第100次时,所有数据都在一行上)。我每行需要1个日期你是在循环中写这些吗?@CocoaDev:然后在换行之前:sw.WriteLine();Write(now.ToShortDateString())代码>。这意味着空文本文件中的第一项将为空,但您可以轻松地手动更正它,或在写入之前进行检查,以确定它是否为第一行。否。应用程序启动时会检查文件中的日期。如果它本月已经运行,我们将退出。否则我们会工作,一旦退出,我们会将日期写入文本文件。我使用WriteLine是因为每个日期都必须在一个新的日期line@CocoaDev你的问题是在文件的结尾遇到空白行,同时读取文件中的行。在应用程序启动之前,这些文件不存在run@CocoaDev我不是要在日期前预加文件,而是要在日期前预加Environment.NewLine。您仍在跳过代码中的空行。无法在文件前加前缀。在应用程序启动之前,这些文件不存在run@CocoaDev我不是要在日期前预加文件,而是要在日期前预加Environment.NewLine。您仍然会跳过代码中的空行。