大家好我已经完成了保存文件的代码,如下所示
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();
}
现在我想将这两个文件保存到单个文件中,也可以保存为多个文件。谁能告诉你怎么做......
答案 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)
我建议你采取各种方式。
这个link有一个简单的代码示例,用于执行类似的操作。
另一种选择是将所有数据存储在内存中,然后直接从内存中写入3个文件。