파일 작업 FileStream, Log
이 코드의 의도는 파일에 데이터를 쓰는 것입니다. 만약 원 파일이 존재하지 않는다면 먼저 새로 만듭니다.
실제로 System을 실행했습니다.IO.File.Create(filename); 시스템을 다시 실행합니다.IO.StreamWriter sr=new System.IO.StreamWriter (filename, true) 에서 오류가 발생합니다.
The process cannot access the file 'C:\Documents\bigtext\1.txt' because it is being used by another process.
이유: System.IO.File.Create(filename) 반환 값은 FileStream입니다. 새로 만들기를 실행했지만 FileStream을 닫지 않았기 때문에 파일used by another process입니다.
private static void write()
{
try
{
string filename = @"C:\Documents\bigtext\1.txt";
if (!System.IO.File.Exists(filename))
{
System.IO.File.Create(filename);
}
using (System.IO.StreamWriter sr=new System.IO.StreamWriter(filename,true))
{
sr.WriteLine("test12");
}
}
catch
{
}
}
아래와 같이 수정하면 된다
private static void write()
{
try
{
string filename = @"C:\Users\xiaochun-zhai\Documents\bigtext\1.txt";
if (!System.IO.File.Exists(filename))
{
System.IO.FileStream sr= System.IO.File.Create(filename);
sr.Close();
}
using (System.IO.StreamWriter sr=new System.IO.StreamWriter(filename,true))
{
sr.WriteLine("test12");
}
}
catch
{
}
}
2. 사실상 코드 한 마디가 위의 방법을 대체할 수 있다. 상기 방법은 단지 System을 설명하기 위한 것이다.IO.File.Create 사용 시 주의해야 할 문제.
string filename = @"C:\Documents\bigtext\1.txt"; System.IO.File.AppendAllText(filename, "ceshi\r");
3. 아주 간단하게 로그를 쓰는 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace writefile
{
public class WriteLog
{
public static string LogBasePath = @"C:\";
private string logFileName = "Log.txt";
private static object _locker = new object();
private static WriteLog _instance;
private WriteLog()
{
}
public static WriteLog Instance
{
get
{
if (_instance == null)
{
lock (_locker)
{
if (_instance == null)
{
_instance = new WriteLog();
}
}
}
return _instance;
}
}
public void LogMessage(string message)
{
lock (_locker)
{
string fullPath = System.IO.Path.Combine(WriteLog.LogBasePath, logFileName);
System.IO.File.AppendAllText(fullPath, message + Environment.NewLine);
}
}
}
}
호출:WriteLog.Instance.LogMessage("test");
설명: Environment.New Line은 줄 바꿈을 나타냅니다.
.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.