NETCORE - 文件读取
NETCORE - 文件读取
using Microsoft.AspNetCore.Http; using Microsoft.IdentityModel.Tokens; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ude; namespace Rail.Medium.FileOperate { public class FileOperation { public static Encoding GetEncoding(string file) { using (var fs = File.OpenRead(file)) { return GetEncoding(fs); } } public static Encoding GetEncoding(Stream fs) { var detector = new CharsetDetector(); detector.Feed(fs); detector.DataEnd(); var cs = detector.Charset ?? "UTF-8"; return Encoding.GetEncoding(cs); } public static async Task<List<string>> ReadToList(IFormFile file) { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); // 处理文件 using (var fs = file.OpenReadStream()) { var encoding = GetEncoding(fs); using (var reader = new StreamReader(file.OpenReadStream(), encoding)) //using (var reader = new StreamReader(file.OpenReadStream(), Encoding.GetEncoding("gb18030"))) { var fileContent = await reader.ReadToEndAsync(); List<string> lines = new List<string>(fileContent.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)); lines.RemoveAt(0); return lines; } } } public static async Task<string> ReadToText(IFormFile file) { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); // 处理文件 using (var reader = new StreamReader(file.OpenReadStream(), Encoding.UTF8, true)) { var fileContent = await reader.ReadToEndAsync(); return fileContent; } } public static async Task<string> WriteToFileAsync(string str, string filePath) { //System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); if (System.IO.File.Exists(filePath)) File.Delete(filePath); await System.IO.File.WriteAllTextAsync(filePath, str, new UTF8Encoding(false)); return filePath; } public static string WriteToFile(string str, string filePath) { //System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); if (System.IO.File.Exists(filePath)) File.Delete(filePath); System.IO.File.WriteAllText(filePath, str, new UTF8Encoding(false)); return filePath; } } }
end

浙公网安备 33010602011771号