读取ftp文件最后一行以后报错,无法访问已释放的对象。 对象名:System.Net.Sockets.NetworkStream

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取ftp文件最后一行以后报错,无法访问已释放的对象。 对象名:System.Net.Sockets.NetworkStream相关的知识,希望对你有一定的参考价值。

using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(936)))

#region 读取FTP服务器csv文件数据
string strLine = "";
//记录每行记录中的各字段内容
string[] aryLine = null;
string[] tableHead = null;
//标示列数
int columnCount = 0;
//标示是否是读取的第一行
bool IsFirst = true;
//逐行读取CSV中的数据
#region 循环遍历数据
//string strfs = reader.ReadToEnd();
while ((strLine = reader.ReadLine()) != null) //这里报错 读取到最后一的时候

//取第一行 为表头
if (IsFirst == true)

tableHead = strLine.Split(',');
IsFirst = false;
columnCount = tableHead.Length;
//创建列
for (int i = 0; i < columnCount; i++)

DataColumn dc = new DataColumn(tableHead[i]);
dt.Columns.Add(dc);


else

aryLine = strLine.Split(',');
DataRow dr = dt.NewRow();
// 添加次行
for (int j = 0; j < columnCount; j++)

dr[j] = aryLine[j];


dt.Rows.Add(dr);


#endregion
if (aryLine != null && aryLine.Length > 0)

dt.DefaultView.Sort = tableHead[0] + " " + "asc";

#endregion

response.Close();
comm.WriteModuleLog(string.Format("读取数据成功!"), "日志");
return dt;

catch (Exception ex)

comm.WriteModuleLog("读取数据出错!" + ex.Message, "日志");
return null;

while ((strLine = reader.ReadLine()) != null) //这里报错 读取到最后一的时候
会这样是因为当读取流读取到最后一行内容后就关闭了文件了
虽然在正常的读取流中会在读取完内容后返回null
但再ftp文件的读取中,读取完最后一行后再读取就会抛出这个异常
其实用您代码注释的这句//string strfs = reader.ReadToEnd();来读取就可以了
如果要分行处理直接用分行符分割一下就可以了
参考技术A 不要对同一个流get两次。。
如果需要读取两次的话 先读取到memoryStream中再做第二次处理。。追问

get两次? 哪里get两次了?

C#Winform打印预览无法访问已释放的对象。

我想打印预览一张图片
第一次单击能打开,关上预览后再单击预览就报错
无法访问已释放的对象。对象名:“PrintPreviewDialog”。
源码为:
namespace WindowsFormsApplication10

public partial class Form1 : Form

public Form1()

InitializeComponent();


private void button1_Click(object sender, EventArgs e)

printPreviewDialog1.Show();


private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

e.Graphics.DrawImage(Image.FromFile("c:\\1233.jpg"), 100, 100);



希望有高手能帮帮我,先谢谢了
这个东西要怎么New一个新的呢?
我刚学C#
不太懂
受累说详细点好么?

参考技术A 这个东西要打开之前new个新的,不要用工具箱里面直接拖进去的

PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();本回答被提问者采纳

以上是关于读取ftp文件最后一行以后报错,无法访问已释放的对象。 对象名:System.Net.Sockets.NetworkStream的主要内容,如果未能解决你的问题,请参考以下文章

NPOI读取Excel报错:无法访问已关闭的流或文件

C#Winform打印预览无法访问已释放的对象。

权限问题导致无法删除ftp文件

Python 读取文件首行和最后一行

我的FTP能够链接到VPS,但是无法显示远程文件夹 请问是怎么回事?

c# topmost模式窗口关闭后,有“无法访问已释放的对象”错误