I have a C# program and it will not write to a file but does write to console, even though the file write line is before console. i have tried several modifications and run through debug as well, and it never writes to the file or it puts one line in the file only
我有一个C#程序,它不会写入文件但写入控制台,即使文件写入行在控制台之前。我已经尝试了几个修改并运行调试,它从不写入文件或只在文件中放置一行
// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader("urltest.txt");
string myFileName = String.Format("{0}_{1}", DateTime.Now.ToString("yyyyMMddhh"), "-urlcheck.log");
while((line = file.ReadLine()) != null)
{
Uri myUri = new Uri(line);
using (StreamWriter writer = new StreamWriter(myFileName))
try
{
// create the web request and response based on the url that has been
// just read from the file urltest.txt
HttpWebRequest reqFP = (HttpWebRequest)HttpWebRequest.Create(myUri);
HttpWebResponse rspFP = (HttpWebResponse)reqFP.GetResponse();
if (HttpStatusCode.OK == rspFP.StatusCode)
{
// HTTP = 200 - Internet connection available, server online
// Write status of the URL to the log file
writer.WriteLine("================================================================= =========");
writer.WriteLine("Status code of returned: OK " + myUri + " THIS URL IS NOT BLOCKED!");
Console.WriteLine("Status code of returned: OK " + myUri + " THIS URL IS NOT BLOCKED!");
var _uri = myUri.ToString();
string _catstr1 = catURL(_uri);
//regex to get the last 8-9 items of the line and replace them
Regex pat = new Regex(@"</(.*?)a");
string _catstr = pat.Replace(_catstr1, "\x20");
// Write the Catagory of the URL to file and continue
writer.WriteLine("URL " + _catstr);
Console.WriteLine("URL " + _catstr);
}
}
3 个解决方案
#1
2
Most anything that writes out to a file should be either within a using
block or manually fushed and closed.
写入文件的大多数内容应该在使用块内,或者手动刷新和关闭。
using (var writer = ...)
{
// Do your writing
} // <- upon leaving the using block writer will automatically be cleaned up.
Note: I'm not a huge fan of var
but as I don't know what class you're using it at least makes a valid example of code
注意:我不是var的忠实粉丝,但因为我不知道你正在使用它的类,至少是一个有效的代码示例
#2
1
You didn't provide the code for File access, but 99% sure that you didn't close the stream.
您没有提供文件访问的代码,但99%确保您没有关闭流。
#3
0
call Flush()
if you want to force output before you close your writer
如果要在关闭作者之前强制输出,请调用Flush()
#1
2
Most anything that writes out to a file should be either within a using
block or manually fushed and closed.
写入文件的大多数内容应该在使用块内,或者手动刷新和关闭。
using (var writer = ...)
{
// Do your writing
} // <- upon leaving the using block writer will automatically be cleaned up.
Note: I'm not a huge fan of var
but as I don't know what class you're using it at least makes a valid example of code
注意:我不是var的忠实粉丝,但因为我不知道你正在使用它的类,至少是一个有效的代码示例
#2
1
You didn't provide the code for File access, but 99% sure that you didn't close the stream.
您没有提供文件访问的代码,但99%确保您没有关闭流。
#3
0
call Flush()
if you want to force output before you close your writer
如果要在关闭作者之前强制输出,请调用Flush()