A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李帅 中级黑马   /  2012-8-3 21:10  /  2003 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

怎么批量读取txt文件,准备做一下归属地查询程序
来自:黑马程序员训练营论坛 Android客户端来自: Android客户端

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

正序浏览
1、使用 FileStream 读写文件


文件头:


using System;

using System.Collections.Generic;

using System.Text;

using System.IO;


读文件核心代码:


byte[] byData = new byte[100]; char[] charData = new char[1000];

try

{

FileStream sFile = new FileStream("文件路径",FileMode.Open); sFile.Seek(55, SeekOrigin.Begin);
sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组 ,用以接受 FileStream 对象中的数据,第 2 个参数

是字节数组中开始写入数据的位置 ,它通常是0,表示从数组的开端文件中向数组写数据 , 最后一个参数规定从文件读多少

字符.

}

catch (IOException e)

{

Console.WriteLine("An IO exception has been thrown!");

Console.WriteLine(e.ToString());

Console.ReadLine(); return;
}

Decoder d = Encoding.UTF8.GetDecoder(); d.GetChars(byData, 0, byData.Length, charData, 0); Console.WriteLine(charData);
Console.ReadLine();


写文件核心代码:


FileStream fs = new FileStream(文件路径,FileMode.Create);

//获得字节数组

byte [] data =new UTF8Encoding().GetBytes(String);

//开始写入

fs.Write(data,0,data.Length);

//清空缓冲区、关闭流

fs.Flush();

fs.Close();





2、使用 StreamReader 和 StreamWriter


文件头:


using System;

using System.Collections.Generic;

using System.Text;

using System.IO;


StreamReader 读取文件:


StreamReader objReader = new StreamReader(文件路径); string sLine="";

ArrayList LineList = new ArrayList(); while (sLine != null)

{

sLine = objReader.ReadLine();

if (sLine != null&&!sLine.Equals("")) LineList.Add(sLine);
}

objReader.Close(); return LineList;

StreamWriter 写文件:


FileStream fs = new FileStream(文件路径, FileMode.Create); StreamWriter sw = new StreamWriter(fs);
//开始写入

sw.Write(String);

//清空缓冲区

sw.Flush();

//关闭流

sw.Close();

fs.Close();


用 C#读取. txt 文件,常用

StreamReader sr = new StreamReader("TestFile.txt")///StreamReader sr = new StreamReader("TestFile.txt",Encoding.GetEncoding("GB2312"))

///GBK

String line;

while ((line = sr.ReadLine()) != null)

{

textBox1 . Text +=ii.ToString ()+" -"+line.ToString()+"\r\n";




}

加入引用: System.IO

StreamReader objReader = new StreamReader("c:\\test.txt");

System.IO 命名空间中的对象,尤其是 System.IO.StreamReader 类。


\r\n 一般一起用,用来表示键盘上的回车键 .也可只用\n.\t 表示键盘上的“TAB”键。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
例:
string[] strs=System.IO.File.ReadAllText(@"C:\成绩.txt", Encoding.Default);
把 成绩.txt的内容存到strs中

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
  1.             FolderBrowserDialog fd = new FolderBrowserDialog();
  2.             if (fd.ShowDialog(this) == DialogResult.OK)
  3.             {
  4.                 a = 0;
  5.                 FDpath = fd.SelectedPath + @"\";
  6.                 string[] tp = Directory.GetFiles(FDpath);
  7.                 for(int i=0;i<tp.length;i++)
  8.                 {
  9.                         tp[i]=FDpath+tp[i];
  10.                 }
  11.             }
复制代码
读一个文件夹的路径,再读这个文件夹下的文件名,他们拼接下就行了呀
代码没有测试,你自己测试吧,这种方法是批量文件夹根目录下的文件,要想批量子文件夹的所有文件,还需要递归

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马