2014-01-28 1 views
2

Я использую JSON для большого массива, и результат Json на "sz"(string).C предел # файл, используя System.IO.StreamWriter с длинной строкой Json

Когда я хочу, чтобы сохранить результат JSon (string sz) на файл, который не сохранит всю строку, почему?

Примечание. Строковое значение составляет около 184985 символов.

Вот код, что я пытался до сих пор:

string sz = JsonConvert.SerializeObject(tempArray); 

using (StreamWriter file = File.AppendText("json.txt")) 
{ 
     file.Write(sz); 
} 

Я пытался использовать

File.AppendAllText(@"json.txt", sz); 

И

System.IO.StreamWriter file = new System.IO.StreamWriter("json.txt", true); 

Размер файла является только 200K.

Есть ли предел текстового файла в окнах?

+0

почему вы не просто использовать 'File.AppendAllText (" json.txt, SZ) '? – i3arnon

+0

Ваш код отлично работает для меня. Я только что отредактировали путь к файлу, чтобы указать на мою папку LINQPad-запросов, hit f5 и voila: выход [1,2,3,4,5,6,7,8,9], который был содержимым моего массива, находился в json.txt – Marco

+2

Он тоже не работает, строка Значение 184985 символов –

ответ

0
  • "Есть ли предел текстового файла в окнах?"
  • Нет (хорошо 2GB в системе FAT32)

Я не уверен, что проблема есть, но я могу поделиться своим сниппет я использую все время, дайте мне знать, если работает для вас.

public class JsonFile 
{ 
    public JsonFile() 
    { 
     formatting = Formatting.Indented; 
    } 

    public JsonFile(Formatting formatting) 
    { 
     this.formatting = formatting; 
    } 

    private Formatting formatting; 

    public T Load<T>(string filename) 
    { 
     string json = File.ReadAllText(filename); 
     return JsonConvert.DeserializeObject<T>(json); 
    } 

    public void Save(string filename, object data) 
    { 
     File.WriteAllText(filename, JsonConvert.SerializeObject(data, formatting), Encoding.UTF8); 
    } 
} 
Смежные вопросы