我有这段代码:
string s = "آ";
StreamWriter writer = new StreamWriter("a.txt", false, Encoding.UTF8);
writer.WriteLine(s);
但是当我运行它时,我在a.txt中看不到任何“آ”字符!a.txt中没有任何字符串!是什么问题???有人可以帮我吗?
我有这段代码:
string s = "آ";
StreamWriter writer = new StreamWriter("a.txt", false, Encoding.UTF8);
writer.WriteLine(s);
但是当我运行它时,我在a.txt中看不到任何“آ”字符!a.txt中没有任何字符串!是什么问题???有人可以帮我吗?
你从来没有调用 Close()
方法关闭 StreamWriter
。
如果你在写完后调用 writer.Close()
,就会看到字符。
但是,由于它实现了 IDisposable
接口,你应该使用 using
语句来包装创建 StreamWriter
的过程:
using(StreamWriter writer = new StreamWriter("a.txt", false, Encoding.UTF8))
{
writer.WriteLine(s);
}
这将为您关闭流。File.WriteAllText("a.txt", s, Encoding.UTF8);
。请查看 如何:将文本写入文件。
请跟随以下完整函数,将列表视图正确导出到Excel并包含特殊字符:
private void Exportar()
{
Encoding encoding = Encoding.UTF8;
saveFileDialog1.Filter = "Arquivo Excel (*.xls)|*.xls";
saveFileDialog1.FileName = "logs";
saveFileDialog1.Title = "Exportar para Excel";
StringBuilder sb = new StringBuilder();
foreach (ColumnHeader ch in lstPesquisa.Columns)
{
sb.Append(ch.Text + "\t");
}
sb.AppendLine();
foreach (ListViewItem lvi in lstPesquisa.Items)
{
foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
{
if (lvs.Text.Trim() == string.Empty)
{
sb.Append(" ");
}
else
{
string ITEM = Regex.Replace(lvs.Text, @"\t|\n|\r", "");//remover novas linhas
sb.Append(ITEM + "\t");
}
}
sb.AppendLine();
}
DialogResult dr = saveFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName, false, Encoding.UTF32);
sw.Write(sb.ToString());
sw.Close();
}
}
List<string>fileData= File.ReadAllLines("URPath",Encoding.Default).ToList());
//Any modifications
File.WriteAllLines("URPath", hstFileData,Encoding.Default);
我知道这不太漂亮,但它确实起作用了。 希望这可以帮到你!