1、WebClient OpenRead方法打开一个读取流(ReadLine好像有Bug);OpenWrite方法打开一个写入流。
2、案例:使用WebClient分析读取http服务器上的Excel文件,不用中间文件。
/*using (Stream stream = new FileStream(@"c:\1.xls",FileMode.Open,FileAccess.Read)){HSSFWorkbook workbook = new HSSFWorkbook(stream);HSSFSheet sheet = workbook.GetSheetAt(0);HSSFRow row = sheet.GetRow(0);string s = row.GetCell(0).StringCellValue;Console.WriteLine(s);}*/using (Stream stream = new FileStream(@"c:\2.xls", FileMode.Create, FileAccess.Write)){HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = workbook.CreateSheet();HSSFRow row = sheet.CreateRow(0);HSSFCell cell = row.CreateCell(0);cell.SetCellValue("我也好");workbook.Write(stream);}
3、基于流方式进行操作的好处就是不用中间文件,没有安全性问题、没有文件冲突问题。
4、开发复杂一点程序的原则就是步步为营,不要想着一次写出来,比如这个案例就可以分解为:读取数据库、创建Excel、上传Excel三步,所以先读取数据库,然后WriteLine看看数据有没有被正确的读出来,ok再开发生成Excel的功能,先生成到FileStream中,成功了再最后完成上传到FTP的功能。这也是迭代的开发方式。
5、File.ReadAllLines(),Stream、FileStream、StreamWriter之间的关系,如何分析Xls等二进制数据。
6、有的Stream子类不支持指针的后退、Seek
7、HSSFWorkbook要求一个指针能随意移动的流。