in DataExtraction/SourceGraphExtractionUtils/Utils/ChunkedJsonWriter.cs [49:97]
public void WriteElement(Action<JsonWriter> writer)
{
using (MemoryStream ms = new MemoryStream())
{
TextWriter tw = new StreamWriter(ms);
JsonWriter js = new JsonTextWriter(tw);
writer(js);
js.Flush();
ms.Seek(0, SeekOrigin.Begin);
using (TextReader sr = new StreamReader(ms))
{
lock (_lock)
{
if (_textStream == null)
{
var filename = GetChunkedOutputFilename(_outputFilenameTemplate, NumChunksWrittenSoFar);
Console.WriteLine($"Opening output file {filename}.");
var fileStream = File.Create(filename);
var gzipStream = new GZipStream(fileStream, CompressionMode.Compress, false);
_textStream = new StreamWriter(gzipStream);
_numElementsWrittenInCurrentChunk = 0;
if (!_useJsonlFormat) _textStream.Write('[');
}
if (_numElementsWrittenInCurrentChunk > 0)
{
if (_useJsonlFormat)
{
_textStream.Write('\n');
}
else
{
_textStream.Write(',');
}
}
var json = sr.ReadToEnd();
_textStream.Write(json);
++_numElementsWrittenInCurrentChunk;
if (_numElementsWrittenInCurrentChunk >= _max_elements_per_chunk)
{
CloseOutputFile();
}
}
}
}
}