덮어쓰지 않고 C#에서 CSV 파일에 데이터 추가
이 문서에서는 기존 데이터를 덮어쓰지 않고 C#에서 CSV 파일에 데이터를 한 행씩 추가하는 일반적인 과제를 다룹니다. File.WriteAllText()
을 사용한 원래 방법에서는 데이터가 손실되었습니다. 이 향상된 접근 방식은 보다 효율적이고 강력한 기술을 사용합니다.
File.WriteAllText()
File.WriteAllText()
을 사용하여 각 행을 직접 쓰면 파일을 반복적으로 덮어쓰고 마지막으로 쓴 행만 남습니다.
해결책: 효율성을 위해 StringBuilder
사용
가장 효율적인 솔루션은 StringBuilder
을 사용하여 파일에 쓰기 전에 모든 행을 메모리에 누적하는 것입니다. 이는 디스크 I/O 작업을 최소화하여 특히 많은 수의 행을 처리할 때 성능을 향상시킵니다.
개선된 기능은 다음과 같습니다.
<code class="language-csharp">var csv = new StringBuilder(); // Iterate through data rows foreach (var rowData in data) { // Format each row (adjust as needed for your data structure) var row = $"{rowData[0]},{rowData[1]}"; csv.AppendLine(row); } File.WriteAllText(filePath, csv.ToString()); </code>
이 코드:
StringBuilder
을 생성합니다.rowData
요소를 반복합니다.$"..."
)을 사용하여 각 행의 서식을 지정합니다. 특정 데이터 구조에 맞게 이를 조정하세요.StringBuilder
을 사용하여 서식이 지정된 행을 AppendLine()
에 추가합니다.File.WriteAllText()
을 사용하여 전체 CSV 문자열을 파일에 씁니다. 이렇게 하면 파일이 덮어쓰여집니다. 추가 방법은 다음 섹션을 참조하세요.대안: File.AppendAllText()
기존 CSV 파일에 행을 추가하려면 File.AppendAllText()
:
<code class="language-csharp">// ... (same StringBuilder logic as above) ... File.AppendAllText(filePath, csv.ToString());</code>
이 방법은 기존 데이터를 유지하면서 파일 끝에 csv.ToString()
콘텐츠를 추가합니다. 이는 일반적으로 CSV에 대한 증분 업데이트에 선호됩니다.
추가 개선
try-catch
와 같은 잠재적인 예외를 처리하려면 IOException
블록을 추가하세요.이 향상된 접근 방식은 C#에서 CSV 파일 쓰기를 관리하는 보다 효율적이고 안정적인 방법을 제공합니다. 특정 데이터 구조에 맞게 행 형식을 조정하는 것을 잊지 마세요.
위 내용은 덮어쓰지 않고 C#에서 CSV 파일에 행 단위로 데이터를 쓰는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!