C# - 我的ReadLine()在我得到一个字符串时给了我一个空值

时间:2014-05-12 00:55:31

标签: c# string null streamreader

已解决 - 意外擦除了实际的数据文件,但是除非您重新打开,否则ide不会更新该文件,因此我认为数据仍在那里。

我正在使用C#中的一个项目来读取虚假库存,然后在另一个类中使用该库存进行交易。我知道目前代码非常混乱,我只是想弄明白一件事。

此处的代码将在我的文件“Inventory.in”中读取,检查文件是否存在(它是否存在),然后将我的streamreader和readline启动为字符串。

private void btnFill_Click(object sender, EventArgs e)
    {
        string strInputLine;
        string inFile = "Inventory.in";
        StreamReader iSR;

        InvRec currInvent;

        if (File.Exists(inFile))
        {
            iSR = new StreamReader(inFile);

            strInputLine = iSR.ReadLine();

            while (strInputLine != null)
            {

所有这些都不存在,但重点是

"strInputLine = iSR.ReadLine();"

确实从该文件中给出了正确的值。

现在转到我的问题,另一个按钮的第二个代码块如下:

private void btnProcess_Click(object sender, EventArgs e)
    {
        string strInputVal;
        string inFileName = "Transactions.in";
        TransRec currTrans;
        StreamReader iSR2;

        transListClass transactionList = new transListClass();

        InvRec inventItem = inventoryList.Retrieve();

        if (File.Exists(inFileName))
        {
            iSR2 = new StreamReader(inFileName);

            strInputVal = iSR2.ReadLine();

            while (strInputVal != null)
            {

当我尝试将我的ReadLine()导入iSR2时,我的问题就在于此。它给了我null而不是我应该得到的文件的值。一切都是一样的,它只是拒绝给我正确的价值。我正在跟踪Visual Studio 2010中的调试器,所以我知道该文件已找到且存在,我看到它被打开,只是一个空值而不是我需要的字符串。

提前感谢任何人,我很感激。 - 安东尼

编辑: 第二个代码块应该从“Transactions.in”读取,而不是从“Inventory.in”中读取的第一个代码

重要编辑: 我注意到当我在进程按钮的第二个代码块中将“Transactions.in”更改为“Inventory.in”时,它会从Inventory.in中读取值并给出一个与Transactions.in中的null不同的正确字符串。找到该文件,它只是一个名为Transactions.in的文本文件,由我的老师提供,其他人都没有问题。

0 个答案:

没有答案