标签: filestream

C#写入XML错误

我在写入XML文件时遇到问题

这是我的代码:

path = test.xml


FileStream READER = new FileStream(path, FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
System.Xml.XmlDocument Template = new System.Xml.XmlDocument();
Template.Load(READER);

//WRITE TO XML

FileStream WRITER = new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite); //Set up the filestream (READER) //
Template.Save(WRITER);
Run Code Online (Sandbox Code Playgroud)

它第一次点击按钮工作,但如果我再次点击它我得到错误

xmlexception句柄根级别的数据无效.第87行,第10位.

这是因为xml文档没有关闭?如果是这样我怎么去做这件事

请有人帮助我

*****更新*****

我现在已经开始工作了.对于那些可能也在努力解决这个问题的人来说,这是我的新代码:

path = test.xml

using(FileStream READER = new FileStream(path, FileMode.Open,FileAccess.Read,FileShare.ReadWrite))
{
    System.Xml.XmlDocument Template = new System.Xml.XmlDocument();
    Template.Load(READER);

    //WRITE TO XML

    using(FileStream WRITER = new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite))
    {
    Template.Save(WRITER);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# xml filestream

0
推荐指数
1
解决办法
927
查看次数

将文件清空

我有一个csv文件。

在某些情况下,我想将文件清空。

我如何才能使文件为空。因为我不删除它并创建一个新文件。

请提出任何建议。

谢谢

.net c# filestream

0
推荐指数
1
解决办法
3096
查看次数

下载数据时为什么会出现UnauthorizedAccessException?

我写了这段代码从FTP服务器下载文件.当程序尝试下载并保存文件时,我收到拒绝访问错误.我尝试使用管理员权限打开程序,但它给出了同样的错误.

WebClient request = new WebClient();
request.Credentials = new NetworkCredential(txtFTPuser.Text,
                                            txtFTPpassword.Text);
/*List all directory files*/
byte[] fileData = request.DownloadData(fullDownloaPath);//dnoces.dreamhost.com
FileStream fi = File.Create(downloadTo);
fi.Write(fileData, 0, fileData.Length);
fi.Close();
MessageBox.Show("Completed!");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

c# file-permissions webclient filestream

0
推荐指数
1
解决办法
3073
查看次数

C#中的条件Streamwrite

假设我有一个成员列表,每个成员都是一个自定义对象:

public class pail
{
    public string milk;
    public string water;
    public string butter;
    public string beer;
}



public class AddToPail()
{
    private List<pail> _pailList = new List<pail>();
    PSVM(String[] args)
    {
        for(int i = 0; i < 200; i++)
        {
            pail newPail = new Pail();
            switch(i)
            {
                case 1:
                {
                    newPail.milk = "This pail has milk";
                }
                break;
                case 2:
                {
                    newPail.butter = "This pail has butter";
                }
                break;
                case 3:
                {
                    newPail.water = "This pail has water";
                }
                break; …
Run Code Online (Sandbox Code Playgroud)

c# code-formatting filestream

0
推荐指数
1
解决办法
408
查看次数

可以Stream.CopyTo(流)损坏数据吗?

的背景:

我有以下WriteFileToStream函数,用于完成一个简单的工作:从文件中获取数据并将其复制到Stream.

我最初使用的是Stream.CopyTo(Stream)方法.但是,经过漫长的调试过程后,我发现这是导致我的处理管道中出现"损坏数据"错误的原因.

概要:

使用Stream.CopyTo(Stream)方法产生65536个字节的数据,并且流不能正确处理.

使用Stream.Write(...)方法可以生成45450个字节的数据,并且流正确处理.

问题:

任何人都可以看到为什么以下使用CopyTo可能导致无关数据被写入流?

请注意:WriteFileToStream中的最终代码取自对此问题的回答:将MemoryStream保存并加载到文件中

public static void WriteFileToStream(string fileName, Stream outputStream)
{
    FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    long fileLength = file.Length;
    byte[] bytes = new byte[fileLength];
    file.Read(bytes, 0, (int)fileLength);
    outputStream.Write(bytes, 0, (int)fileLength);
    file.Close();
    outputStream.Close();

    // This was corrupting the data - adding superflous bytes to the result...somehow.
    //using (FileStream file = File.OpenRead(fileName))
    //{
    //    // 
    //    file.CopyTo(outputStream);
    //}
}
Run Code Online (Sandbox Code Playgroud)

c# filestream

0
推荐指数
1
解决办法
2055
查看次数

在vs2010中编写文件(c ++,win32)

我之前问了这个问题,你告诉我提到错误,所以我现在就提到它们(我无法弄清楚如何继续我开始的最后一个线程,我看到的只是一个"添加注释"按钮和一个"回答你的问题"按钮,所以我不得不纠正问题并再次询问,抱歉:

我的问题如下:我正在使用visual studio 2010,我正在编写一个win32应用程序(不是控制台应用程序).我需要知道如何从这个应用程序写入文件.

我包括这些标题:windows.h,stdlib.h,string.h和tchar.h

我写了一个非常简单的hello world应用程序,它运行得很好.

但是当我试图在我的项目中包含iostream和fstream时,编译器给了我以下错误.

1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdlib(21): error C2039: 'abort' : is not a member of '`global namespace''
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdlib(21): error C2873: 'abort' : symbol cannot be used in a using-declaration
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdlib(24): error C2039: 'exit' : is not a member of '`global namespace''
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdlib(24): error C2873: 'exit' : symbol cannot be used in a using-declaration
IntelliSense: the global scope …
Run Code Online (Sandbox Code Playgroud)

c++ winapi filestream

0
推荐指数
1
解决办法
720
查看次数

VB.net ReDim Preserve的替代方式

我的程序确实有效,但我认为它会遇到性能问题,它在循环数组时占用了总CPU使用量的40%.通常我的程序只占用CPU使用率的5%以下,我认为ReDim Preserve正在导致这种情况,因为我正在循环大约100,000多行.这是我的代码.

    Dim sArray As String()
    Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
    Dim sReader As New System.IO.StreamReader(fStream)
    Dim Index As Integer = 0
    Do While sReader.Peek >= 0
        ReDim Preserve sArray(Index)
        sArray(Index) = sReader.ReadLine
        Index += 1
    Loop

    fStream.Close()
    sReader.Close()
Run Code Online (Sandbox Code Playgroud)

除了ReDim Preserve之外,还有其他方法可以将值放入数组吗?在此先感谢,我现在真的陷入了这个问题.

这是我使用List的更新代码.

    Dim sArray As String()
    Dim sList As New List(Of String)
    Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
    Dim sReader As New System.IO.StreamReader(fStream)
    Dim Index As Integer = 0
    Do While sReader.Peek >= 0
        sList.Add(sReader.ReadLine)
    Loop
    sArray = sList.ToArray …
Run Code Online (Sandbox Code Playgroud)

vb.net arrays loops filestream streamreader

0
推荐指数
1
解决办法
1万
查看次数

有没有办法在C#中使用字符串名称创建文本文件?

我不确定是否可能.我通常创建这样的txt文件:

FileStream fs = new FileStream("c:\\textFile.txt", FileMode.Append, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
Run Code Online (Sandbox Code Playgroud)

但不是使用"c:\ textFile.txt"我想使用字符串名称创建一个文件.有办法吗?

c# string filestream streamwriter text-files

0
推荐指数
1
解决办法
507
查看次数

使用太多内存读取文件流

我想将一个文件base64string读入流中作为一个并且我使用下面的代码来读取文件,但是当我看到内存使用量超过900MB时,我通过任务管理器监视它.我错过了什么,我可以看到当我将其读入字符串时,内存使用率会上升,(我已经使用了150 MB的文件来测试它).

stringBuilder Sb=  new stringBuilder ();
using (var fs = new FileStream(@"C:\Users\Sanath Kumar\Desktop\s.pdf", FileMode.Open, FileAccess.Read))
{
    var buffer = new byte[fs.Length];
    fs.Read(buffer, 0, (int)fs.Length);
    Sb.Append(Convert.ToBase64String(buffer));
    buffer = null;
    fs.Flush();
    fs.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

.net c# filestream

0
推荐指数
1
解决办法
292
查看次数

运行时错误尝试反序列化空流

我正在尝试deserialize从文件中的字符串列表.在这里我的代码

FileStream filestream = new FileStream(@"D:\cache.bin", FileMode.OpenOrCreate);
try
{
    BinaryFormatter binformat = new BinaryFormatter();
    _cacheFileList = (List<string>)binformat.Deserialize(filestream);
}
catch (SerializationException ex)
{
    Console.WriteLine(ex.Message);
}
finally 
{
    filestream.Close();
}
Run Code Online (Sandbox Code Playgroud)

我收到运行时错误.尝试反序列化空流.

.net c# filestream deserialization

0
推荐指数
1
解决办法
5766
查看次数