首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于C#进程的有关问题

2011-12-22 
关于C#进程的问题我的代码事这样的using Systemusing System.Collectionsusing System.Collections.Gene

关于C#进程的问题
我的代码事这样的
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace Book
{
  public class Book 
  {
  private string bookID;
  private string bookName;
  private string publish;
  private string author;

  public string BookID {
  get { return bookID; }
  set { bookID = value; }
  }
  public string BookName {
  get { return bookName; }
  set { bookName = value; }
  }
  public string Publish {
  get { return publish; }
  set { publish = value; }
  }
  public string Author {
  get { return author; }
  set { author = value; }
  }
  }

  public class BookMethod
  {
  Book book = new Book();
  public void into1(string a){
  FileStream fs = new FileStream("e:\\aa.txt",FileMode.Create,FileAccess.Write);
  StreamWriter sw = new StreamWriter(fs);
  sw.WriteLine(a);
  sw.Close();
  }
  //输入
  public void into(string a) {
  StreamWriter writer = new StreamWriter("e:\\aa.txt",true);
  writer.WriteLine(a);
  writer.Close();
  }//输出所有
  public void outf() {
  string text;
  FileStream fs1 = new FileStream("e:\\aa.txt",FileMode.Open,FileAccess.Read);
  StreamReader sr = new StreamReader(fs1);
  text=sr.ReadToEnd();
  Console.WriteLine(text);
  sr.Close();
  fs1.Close();
  }
  //根据书号查询  
  public void outf1(string b) {
  FileInfo fi = new FileInfo("e:\\aa.txt");
  StreamReader sr = fi.OpenText();
  string text; do{
  string[] text2=new string[4];
  text = sr.ReadLine();
  //?
  try { 
  text2= text.Split(' ');
  }catch(SystemException e){
  Console.WriteLine(e.Message);
  }
   
  if(text2[0]==b)
  Console.WriteLine(text);
  }while(text!=null);
  sr.Close();
  }
  public string outf2(string b)
  {
  FileInfo fi = new FileInfo("e:\\aa.txt");
  StreamReader sr = fi.OpenText();
  string text;
  string text3;
  do
  {
  string[] text2 = new string[4];
  text = sr.ReadLine();
  //?
  try
  {
  text2 = text.Split(' ');
  }
  catch (SystemException e)
  {
  Console.WriteLine(e.Message);
  }

  if (text2[0] == b)
  {Console.WriteLine(text);
  text3 = text;
  return text3; 
  } 
  } while (text != null);


  sr.Close(); 
  return null;
  }
  //增加
  public void AddBook() {
  bool f=false;

  do{
  Console.WriteLine("请输入书号!");
  string num = Console.ReadLine().Trim();
  Console.WriteLine("请输入书名!");
  string name = Console.ReadLine();
  Console.WriteLine("请输入出版社!");
  string pub = Console.ReadLine();
  Console.WriteLine("请输入作者!");
  string auth = Console.ReadLine();
  string save = num + " " + name + " " + pub + " " + auth;
  into(save);
  Console.WriteLine("是否继续添加?(Y/N)");
  string a = Console.ReadLine();
  if (a == "Y" || a == "y")
  f = true;
  else
  f = false;
  }while(f);
  }
   
  public string AddBook1() {
  Console.WriteLine("请输入书号!");
  string num = Console.ReadLine().Trim();
  Console.WriteLine("请输入书名!");
  string name = Console.ReadLine();
  Console.WriteLine("请输入出版社!");
  string pub = Console.ReadLine();
  Console.WriteLine("请输入作者!");
  string auth = Console.ReadLine();
  string save = num + " " + name + " " + pub + " " + auth;
  Console.WriteLine(save);
  Console.WriteLine("++++++++++++++++++++");
  return save;
  }
  //修改
   
  public void replace(string a,string b) {
  StreamReader sr1 = new StreamReader("e:\\aa.txt");
  string s = sr1.ReadToEnd();
  sr1.Close();
  try { 
  s = s.Replace(a,b);
  Console.WriteLine(s);
  }catch(SystemException ex){
  Console.WriteLine(ex.Message);
  }
  //try {
  Console.WriteLine("haha");
  into1(s);
  // }catch(SystemException e){
  Console.WriteLine("-------------");
  // }
   
   
  }
   
  public void Del(string a) {
  }
   
  class BookTest
  {
  static void Main(string[] args)
  {
  BookMethod b = new BookMethod();
  string p="";
  do{
  Console.WriteLine("请选择业务:输入0添加,1删除,2修改,3查看所有,4根据书号查看,5退出"); 
  p=Console.ReadLine();
  switch(p)
  {
  case "0":
  b.AddBook();
  break;
  case "1":
  Console.WriteLine("请输入要删除的书号!");
  string s = Console.ReadLine().Trim();
  string q = b.outf2(s);
  Console.WriteLine(q);

  b.Del(q);


  Console.WriteLine("删除成功!");
  break;
  case "2":
  /*b.replace();*/
  Console.WriteLine("请输入要修改的书号!");
  string c = Console.ReadLine().Trim();
  string e= b.outf2(c);
  Console.WriteLine("修改为:");
  string d= b.AddBook1();
  Console.WriteLine(e);
  b.replace(e,d);
  Console.WriteLine("修改成功!");
  break;
  case "3":
  b.outf();
  break;
  case "4":
  string a;
  Console.WriteLine("请输入要查询的书号!");
  a = Console.ReadLine().Trim();
  b.outf1(a);
  break;
  case "5":
  return;
  default:
  break;
  }
   
  }while(true);
  }
  }
}


在实现修改功能时,修改后不能写入文件,报异常 e:\\aa.txt被另一个进程使用不能访问到
是怎么回事?谢谢



[解决办法]
写入的操作之前,文件已被打开,没有进行关闭
[解决办法]
文件打开后没有关闭,要先关闭。

热点排行