黑马程序员技术交流社区

标题: File文件操作问题! [打印本页]

作者: /fendou    时间: 2014-5-15 17:13
标题: File文件操作问题!
本帖最后由 /fendou 于 2014-5-21 11:41 编辑

有一个10M的文件,由于内存有限,程序每次最多处理2M的数据,如何实现?
作者: 方杰斌    时间: 2014-5-15 17:25
   FileStream fs = new FileStream(name, FileMode.CreateNew);
            
            //转换为字节 写入数据(可写入中文)
            Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            //字节数组,字节偏移量,最多写入的字节数
            fs.Write(info, 0, info.Length);
            //w.Close();
            fs.Close();
            //打开文件
            fs = new FileStream(name, FileMode.Open, FileAccess.Read);
            //读取
            BinaryReader r = new BinaryReader(fs);
            for (int i = 0; i < 11; i++)
            {
                Console.WriteLine(r.ReadInt32());
            }
            //w.Close();
            fs.Close();

要控制大小  就是修改 每次读写的 大小即可
作者: /fendou    时间: 2014-5-15 17:31
文件是这种格式的
1        1330000        广西 南宁        电信CDMA卡        0771        530000
3        1330002        重庆 重庆        电信CDMA卡        023        404100
4        1330003        重庆 重庆        电信CDMA卡        023        404100
11        1330010        北京 北京        电信CDMA卡        010        100000
12        1330011        北京 北京        电信CDMA卡        010        100000
19        1330018        上海 上海        电信CDMA卡        021        200000
20        1330019        上海 上海        电信CDMA卡        021        200000
34        1330033        天津 天津        电信CDMA卡        022        300000
35        1330034        天津 天津        电信CDMA卡        022        300000
51        1330050        上海 上海        上海电信CDMA卡        021        200000
52        1330051        上海 上海        上海电信CDMA卡        021        200000
53        1330052        上海 上海        上海电信CDMA卡        021        200000
54        1330053        上海 上海        上海电信CDMA卡        021        200000
55        1330054        上海 上海        上海电信CDMA卡        021        200000
64        1330063        上海 上海        上海电信CDMA卡        021        200000
65        1330064        上海 上海        上海电信CDMA卡        021        200000
67        1330066        上海 上海        上海电信CDMA卡        021        200000
81        1330080        上海 上海        上海电信CDMA卡        021        200000
82        1330081        上海 上海        上海电信CDMA卡        021        200000
83        1330082        上海 上海        上海电信CDMA卡        021        200000
84        1330083        上海 上海        上海电信CDMA卡        021        200000
85        1330084        上海 上海        上海电信CDMA卡        021        200000
86        1330085        上海 上海        上海电信CDMA卡        021        200000
87        1330086        上海 上海        上海电信CDMA卡        021        200000
88        1330087        上海 上海        上海电信CDMA卡        021        200000
89        1330088        上海 上海        上海电信CDMA卡        021        200000
90        1330089        上海 上海        上海电信CDMA卡        021        200000
99        1330098        上海 上海        上海电信CDMA卡        021        200000
101        1330100        北京 北京        电信CDMA卡        010        100000
102        1330101        北京 北京        电信CDMA卡        010        100000
103        1330102        北京 北京        电信CDMA卡        010        100000
104        1330103        北京 北京        电信CDMA卡        010        100000
105        1330104        北京 北京        电信CDMA卡        010        100000

如何保证每次读取的都正确呢?

作者: 方杰斌    时间: 2014-5-15 17:39
如果 是这样的 数据  就用   一行一行读
作者: 方杰斌    时间: 2014-5-15 17:41
/fendou 发表于 2014-5-15 17:31
文件是这种格式的
1        1330000        广西 南宁        电信CDMA卡        0771        530000
3        1330002        重庆 重庆        电信CDMA卡        023        40410 ...

try
        {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("TestFile.txt"))
            {
                String line;
                // Read and display lines from the file until the end of
                // the file is reached.
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception e)
        {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }



作者: 方杰斌    时间: 2014-5-17 12:05
【如果  问题 搞定  麻烦 把帖子 修改为  提问结束吧   】




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2