public async Task <long> WriteJsonToFileAsync <T>(string path, [AllowNull] T obj, FileFlags flags = FileFlags.None, bool doNotOverwrite = false, CancellationToken cancel = default, bool includeNull = false, bool escapeHtml = false, int?maxDepth = Json.DefaultMaxDepth, bool compact = false, bool referenceHandling = false) { //string jsonStr = obj._ObjectToJson(includeNull, escapeHtml, maxDepth, compact, referenceHandling); //return this.WriteStringToFileAsync(path, jsonStr, flags, doNotOverwrite, writeBom: true, cancel: cancel); HugeMemoryBuffer <byte> mem = new HugeMemoryBuffer <byte>(); using (BufferBasedStream stream = new BufferBasedStream(mem)) { using (StreamWriter w = new StreamWriter(stream, new UTF8Encoding(true), Consts.Numbers.DefaultVeryLargeBufferSize)) { obj._ObjectToJsonTextWriter(w, includeNull, escapeHtml, maxDepth, compact, referenceHandling); } } return(await this.WriteHugeMemoryBufferToFileAsync(path, mem, flags, doNotOverwrite, cancel)); }
public VfsRamFile(VirtualFileSystem fileSystem, string fileName) : base(fileSystem, fileName) { Buffer = new HugeMemoryBuffer <byte>(); }