如何从FileStream创建TextWriter

时间:2018-05-17 00:30:15

标签: c# json

Newtonsoft.Json需要一个TextWriter来创建JsonTextWriter的实例,它需要由多个类共享。我正在尝试为我决定在那天运行的所有测试重复使用相同的结果实例。

因此,当我编写测试结果时,需要在代码中使用JsonTextWriter实例。

由于可共享性,我需要找到一种方法来打开现有的文本文件并为其分配一个FileStream并将其放入TextWriter中,这样我就可以创建我的JsonTextWriter。

但是如何使用FileStream创建TextWriter的实例?

当我尝试创建一个新的TextWriter时,我得到的错误是它是一个抽象类。

当我尝试使用File.OpenText(path)时,我无法将文件设置为FileShare.ReadWrite。

这是我到目前为止所做的:

CREATE DATABASE {your-db-here}
DEFAULT CHARACTER SET latin1;

USE {your-db-here};
CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT, 
username varchar(255) NOT NULL, 
first_name varchar(255) NOT NULL, 
last_name varchar(255) NOT NULL, 
email varchar(255) NOT NULL, 
password varchar(255) NOT NULL, 
sign_up_date date NOT NULL, 
activated enum('0','1') NOT NULL, 
PRIMARY KEY (id) 
); 

1 个答案:

答案 0 :(得分:3)

TextWriter是一个抽象类,您可以使用继承自的StreamWriter

using (var stream = File.Open("somefile", FileMode.CreateNew))
{
    using (var sw = new StreamWriter(stream))
    {
        using (var jw = new JsonTextWriter(sw))
        {
            jw.WriteRaw("{}");
        }
    }
}