Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/82: Рейтинг темы: голосов - 82, средняя оценка - 4.73
Башир
207 / 207 / 20
Регистрация: 18.05.2010
Сообщений: 846
1

StreamWriter, StreamReader, где и как указать кодировку

29.10.2010, 10:54. Просмотров 14991. Ответов 3
Метки нет (Все метки)

В C# как известно все символы кодируются 2-мя байтами - следовательно есть определенные проблемы при записи и чтения файлов в стандартовской не юникодовской кодировки, а еще и в досовской. Проблему я решил использовав File.ReadAllBytes() и File.WrileAllBytes() и использованием класса Encoding. Как обходится с такой проблемой при использовании StreamReader и StreamWriter. Где указывать и как указывать кодировку.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void SaveToFile(string fileName, string textToSave)
{
    using (StreamWriter sw = new StreamWriter(fileName))
    {
        sw.Write(textToSave);
    }
}
 
void ReadFromFile(string fileName, out string textFromFile)
{
    using (StreamReader sr = new StreamReader(fileName))
    {
        textFromFile = sr.ReadToEnd();
    }
}
откорректируйте код чтобы мог читать и писать в стандартном формате без юникода.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2010, 10:54
Ответы с готовыми решениями:

StreamWriter: как указать кодировку
в книгах написано что сохранять и открывать файлы нужно так: StreamWriter...

StreamWriter: как задать кодировку
Помогите записать правильно.

Как изменить кодировку текста в StreamWriter
Создаю файл: StreamWriter streamWriter = File.CreateText(somePath +".html");...

Ввод, вывод с файлами через StreamReader, StreamWriter
файл Inlet.In,Outlet.out через Streamreader,Streamwriter public struct...

Работа со StreamWriter и StreamReader. Удаление строки из файла
Всем привет. Пишу консольное приложение и имеется функция, которая позволяет...

3
minvince
6 / 6 / 1
Регистрация: 27.09.2010
Сообщений: 28
29.10.2010, 11:45 2
Кодировку можно задать в конструкторе классов StreamWriter и StreamReader
C#
1
2
public StreamReader (string path, Encoding encoding)
public StreamWriter (string path, bool append, Encoding encoding)
2
Башир
207 / 207 / 20
Регистрация: 18.05.2010
Сообщений: 846
29.10.2010, 13:34  [ТС] 3
Спасибо разобрался.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void SaveToFile(string fileName, string textToSave)
{
    using (StreamWriter sw = new StreamWriter(fileName, System.Text.Encoding.Default))
    {
        sw.Write(textToSave);
    }
}
 
void ReadFromFile(string fileName, out string textFromFile)
{
    using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default))
    {
        textFromFile = sr.ReadToEnd();
    }
}
2
wm_leviathan
196 / 198 / 69
Регистрация: 12.01.2011
Сообщений: 699
Завершенные тесты: 2
05.05.2015, 16:46 4
Спасибо пригодилось.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2015, 16:46

Переписать задачу, используя StreamReader и StreamWriter, вместо BinaryWriter и BinaryReader
using System; using System.Collections.Generic; using System.Linq; using...

Передать кодировку в конструктор StreamWriter
При добавлении кодировки пишет ошибку (имеет несколько аргументов) SW = new...

Всегда ошибка при открытии файла StreamReader, StreamWriter: "Устройство не готово"
using (StreamReader sr = new StreamReader(filename)) Делаю так, и всегда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru