修改
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using ConsoleApp2.Helpers;
|
||||
using ConsoleApp2.HostedServices.Abstractions;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ServiceStack.Text;
|
||||
|
||||
@@ -8,9 +9,9 @@ namespace ConsoleApp2.Services;
|
||||
/// 读取Jsv格式文件
|
||||
/// </summary>
|
||||
[Obsolete]
|
||||
public class JsvSource : IDisposable
|
||||
public class JsvSource:IDataSource
|
||||
{
|
||||
private readonly string _filePath;
|
||||
private readonly string _inputDir;
|
||||
private readonly JsvStringSerializer _jsv;
|
||||
private readonly StreamReader _reader;
|
||||
// ReSharper disable once PrivateFieldCanBeConvertedToLocalVariable
|
||||
@@ -21,29 +22,22 @@ public class JsvSource : IDisposable
|
||||
public string[]? Headers { get; }
|
||||
public bool EndOfSource => _reader.EndOfStream;
|
||||
|
||||
public JsvSource(string filePath, string[]? headers = null, ILogger? logger = null)
|
||||
public JsvSource(string inputDir,string tableName, ILogger? logger = null)
|
||||
{
|
||||
_filePath = filePath;
|
||||
_inputDir = inputDir;
|
||||
_tableName = tableName;
|
||||
_jsv = new JsvStringSerializer();
|
||||
_reader = new StreamReader(filePath);
|
||||
Headers = headers;
|
||||
// _reader = new StreamReader(filePath);
|
||||
//Headers = headers;
|
||||
_logger = logger;
|
||||
// _logger?.LogInformation("Reading file: {FilePath}", filePath);
|
||||
_tableName = DumpDataHelper.GetTableName(filePath);
|
||||
//_tableName = DumpDataHelper.GetTableName(filePath);
|
||||
}
|
||||
|
||||
public async ValueTask<bool> ReadAsync()
|
||||
public async Task DoEnqueue(Action<DataRecord> action)
|
||||
{
|
||||
var str = await _reader.ReadLineAsync();
|
||||
if (string.IsNullOrEmpty(str))
|
||||
return false;
|
||||
var fields = _jsv.DeserializeFromString<string[]>(str);
|
||||
|
||||
Current = new DataRecord(fields, _tableName, Headers);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
public void Dispose()
|
||||
{
|
||||
_reader.Dispose();
|
||||
}
|
||||
|
Reference in New Issue
Block a user