创建表单以输入将保存到文件的库存项目。您将需要创建一个类,以包括项目代码,描述和价格。使用表单上的按钮将输入的项目添加/保存到您的文件。当竞争添加时,这也将清除表单上的文本框。这将使其准备好添加下一个项目。在表单上包含另一个按钮,按下该按钮将显示表单中文件中的所有项目(您添加的)。
我需要做的主题。我尝试了几种方法,但它总是崩溃或给我一个消息,我的文件正在被使用。你能告诉我我需要做些什么来解决这个问题吗?
public partial class Form1 : Form
{
const string DELIM = ", ";
const string FILENAME = @"C:\Users\Duckie\Desktop\C# Practice\Chapter.04\Quiz4\Inventory.txt";
int code;
string description;
double price;
static FileStream outFile = new
FileStream(FILENAME,FileMode.Create,FileAccess.Write);
StreamWriter writer = new StreamWriter(outFile);
public Form1()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{
code = Convert.ToInt32(codeBox.Text);
description = descriptionBox.Text;
price = Convert.ToDouble(priceBox.Text);
writer.WriteLine(code + DELIM + description + DELIM + price);
codeBox.Clear();
descriptionBox.Clear();
priceBox.Clear();
}
}
}
答案 0 :(得分:0)
首先,使用SaveFileDialog打开文件。如果要在列表或表中显示所有库存项目,请使用OpenFileDialog打开文件。然后,您不需要在字符串变量中包含文件的完整路径。如果将文件移动到另一个目录会发生什么?
好的,这里有一些代码用于保存到文本文件然后阅读它。基本上代码的作用是保存您在文本框中键入的名称。唯一的要求是该文件已经存在(我只使用过OpenFileDialog)。 保存和读取文件的类:
class SaveToFile
{
static List<string> nameList = new List<string>();
public static void Save(string filePath, string input)
{ ///true only says that it is okay to append new lines into the file
using (StreamWriter sWriter = new StreamWriter(filePath, true))
{
sWriter.WriteLine(input);
}
}
public static List<string> Read(string filePath)
{
string line = string.Empty;
nameList.Clear();
using (StreamReader sReader = new StreamReader(filePath))
{
while ((line = sReader.ReadLine()) != null)
{
//I populate the list with the lines in the file
nameList.Add(line);
}
}
return nameList;
}
}
//和视图
public partial class SaveReadForm: Form
{
private OpenFileDialog opnFileDialog = new OpenFileDialog();
Person p = new Person();
public SaveReadForm()
{
InitializeComponent();
opnFileDialog.Filter = "Text File[.txt]|*.txt";
}
private void saveBtn_Click(object sender, EventArgs e)
{
if (opnFileDialog.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
if (!String.IsNullOrEmpty(input.Text))
{
p.Name = input.Text;
SaveToFile.Save(opnFileDialog.FileName, p.Name);
}
else
{
MessageBox.Show("Add your name", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
private void readBtn_Click(object sender, EventArgs e)
{
if (opnFileDialog.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
nameLstBox.Items.Clear();
foreach (string s in SaveToFile.Read(opnFileDialog.FileName))
{
nameLstBox.Items.Add(s);
}
}
}
我希望这有助于您了解如何写入和读取文件。