将文件保存在单个文本文件中,也保存在我指定的路径中

时间:2010-07-23 09:10:04

标签: c# string

大家好我已经完成了保存文件的代码,如下所示

       if (m_strStandardEntryClassCode == "PPD")
        {
            m_strPath += "/PPD_BatchHeader_" + m_strDate + ".txt";
        }
        else
        {
            m_strPath += "/CCD_BatchHeader_" + m_strDate + ".txt";
        }
        using (TextWriter tw = new StreamWriter(m_strPath))
        {
            tw.Write(m_strRecordTypeCode.PadLeft(1, '0'));
            tw.Write(m_strServiceClassCode.PadLeft(3, '0'));
            tw.Write(m_strCompanyName.PadRight(16, ' '));
            tw.Write(m_strCompanyDiscretionaryData.PadRight(20, ' '));
            tw.Write(m_strCompanyIdentification.PadRight(10, ' '));
            tw.Write(m_strStandardEntryClassCode.PadRight(3, ' '));
            tw.Write(m_strCompanyEntryDescription.PadRight(10, ' '));
            tw.Write(m_strCompanyDescriptiveDate.PadLeft(6, '0'));
            string m_strEffDate = m_strEffectiveEntryDate.Replace("/", "");
            tw.Write(m_strEffDate.PadLeft(6, '0'));
            tw.Write(m_strOriginatorStatusCode.PadRight(1, ' '));
            tw.Write(m_strOriginationDFIIdentification.PadLeft(8, '0'));
            tw.Write(m_strBatchNumber.PadLeft(7, '0'));
            tw.Flush();
            tw.Close();
        }

现在我想将这两个文件保存到单个文件中,也可以保存为多个文件。谁能告诉你怎么做......

2 个答案:

答案 0 :(得分:1)

你想要这样的东西。

您的数据每次都看起来都一样(或者至少我看不出数据的差异),但我相信您会明白这一点。

您需要使用File.Append将新数据添加到文件中,并使用File.Open来清除和写入新数据。调用MergedDataWrite两次。如果你需要写几个文件。

public void SeparateDataWrite()
{
  if (m_strStandardEntryClassCode == "PPD")
  {
    m_strPath += "/PPD_BatchHeader_" + m_strDate + ".txt";
  }
  else
  {
    m_strPath += "/CCD_BatchHeader_" + m_strDate + ".txt";
  }

  using (StreamWriter w = File.Open(m_strPath, FileMode.Create)
  {
    WriteData(w);
    w.close();
  }
}

public MergedDataWrite()
{
  using (StreamWriter w = File.Append("somefilename.txt")
  {
    WriteData(w);
    w.Close();
  }
}

public void WriteData(TextWriter tw)
{
            tw.Write(m_strRecordTypeCode.PadLeft(1, '0'));
            tw.Write(m_strServiceClassCode.PadLeft(3, '0'));
            tw.Write(m_strCompanyName.PadRight(16, ' '));
            tw.Write(m_strCompanyDiscretionaryData.PadRight(20, ' '));
            tw.Write(m_strCompanyIdentification.PadRight(10, ' '));
            tw.Write(m_strStandardEntryClassCode.PadRight(3, ' '));
            tw.Write(m_strCompanyEntryDescription.PadRight(10, ' '));
            tw.Write(m_strCompanyDescriptiveDate.PadLeft(6, '0'));
            string m_strEffDate = m_strEffectiveEntryDate.Replace("/", "");
            tw.Write(m_strEffDate.PadLeft(6, '0'));
            tw.Write(m_strOriginatorStatusCode.PadRight(1, ' '));
            tw.Write(m_strOriginationDFIIdentification.PadLeft(8, '0'));
            tw.Write(m_strBatchNumber.PadLeft(7, '0'));
            tw.Flush();
}

答案 1 :(得分:0)

我建议你采取各种方式。

  1. 将文件编号1复制到一个名为单个组合文件的文件中。
  2. 打开新文件(单个组合文件)以进行追加。
  3. 打开文件编号2进行阅读并阅读所有内容。
  4. 将您刚刚阅读的数据写入单个组合文件。
  5. 这个link有一个简单的代码示例,用于执行类似的操作。

    另一种选择是将所有数据存储在内存中,然后直接从内存中写入3个文件。