C# 读取大文件 (可以读取3GB大小的txt文件)
在处理大数据时,有可能 会碰到 超过3GB大小的文件,如果通过 记事本 或 NotePad++去打开它,会报错,读不到任何文件。
如果你只是希望读取这文件中的前几行,怎么办,下面的工具会帮您解决这个问题. 而且读取时间很快。
截图:
工具下载地址: http://pan.baidu.com/s/1y34wt (15KB左右, 备注:要运行这个工具,需要您的机器已装过 .netFramework4.0 )
源代码下载地址:http://pan.baidu.com/s/1jAyjl (70KB左右)
源代码样例:
1,读取一般文件的代码
public static string ReaderFile(string path)
{
string fileData = string.Empty;
try
{ ///读取文件的内容
StreamReader reader = new StreamReader(path, Encoding.Default);
fileData = reader.ReadToEnd();
reader.Close();
}
catch (Exception ex)
{
// throw new Exception(ex.Message,ex);
} ///抛出异常
return fileData;
}
2, 读取 大文件(大到约4个GB的文本文件)
private bool ReadBigFile()
{
string sTmpFile=@"c:\tmpTest.txt";
if (File.Exists(sTmpFile))
{
File.Delete(sTmpFile);
} if (!System.IO.File.Exists(sTmpFile))
{
FileStream fs;
fs = File.Create(sTmpFile);
fs.Close();
} if (!File.Exists(txtFileName.Text.Trim()))
{
lblResult.Text = "File not exist!";
txtFileName.Focus();
return false;
} FileStream streamInput = System.IO.File.OpenRead(@txtFileName.Text.Trim());
FileStream streamOutput = System.IO.File.OpenWrite(sTmpFile); int iRowCount = 10;
int.TryParse(txtRowCount.Text.Trim(), out iRowCount); try
{
for (int i = 1; i <= iRowCount; )
{
int result = streamInput.ReadByte();
if (result == 13)
{
i++;
}
if (result == -1)
{
break;
}
streamOutput.WriteByte((byte)result);
}
}
finally
{
streamInput.Dispose();
streamOutput.Dispose();
} string sContent = ReaderFile(sTmpFile);
CopyToClipboard(sContent); return true;
} public static string ReaderFile(string path)
{
string fileData = string.Empty;
try
{ ///读取文件的内容
StreamReader reader = new StreamReader(path, Encoding.Default);
fileData = reader.ReadToEnd();
reader.Close();
}
catch (Exception ex)
{
// throw new Exception(ex.Message,ex);
} ///抛出异常
return fileData;
} private void CopyToClipboard(string sSource)
{
Clipboard.Clear();
if (!string.IsNullOrEmpty(sSource))
{
Clipboard.SetText(sSource);
}
}
C# 读取大文件 (可以读取3GB大小的txt文件)的更多相关文章
- 使用Java将搜狗词库文件(文件后缀为.scel)转为.txt文件
要做一个根据词库进行筛选主要词汇的功能,去搜狗下载专业词汇词库时,发现是.scel文件,且通过转换工具(http://tools.bugscaner.com/sceltotxt/)转换为txt时报错如 ...
- java算法面试题:编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- [C#]_[使用微软OpenXmlSDK (OpenXmlReader)读取xlsx表格] 读取大数据量100万条数据Excel文件解决方案
1.OpenXmlSDK是个很好的类库,可惜只能通过C#调用,C#的童鞋又福气了. 2.服务端程序由于没法安装office,所以这个对asp.net网站来说是最理想的库了.需要.net 4.0版本 ...
- java 根据Url下载对应的文件到指定位置,读txt文件获取url
package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...
- C++文件处理(一):读/写txt文件
C++文件处理与C语言不同,C++文件处理使用的是:流(stream) C++头文件fstream定义了三个类型来支持文件IO
- java直接生成zip压缩文件精简代码(跳过txt文件)
/** * @param args */ public static void main(String[] args) throws Exception{ ZipOutputStream zos = ...
- PHP文件上传 (以上传txt文件为例)
1.前端代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...
- 编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。
package cn.itcast; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public ...
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
package sundemo2; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public ...
随机推荐
- Nginx+uswgi+Django部署
详情参考: http://blog.csdn.net/a_little_snail/article/details/78045636
- [Flow] More tips about Flow
- 【u120】红牌
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤 ...
- Mina框架项目运用
近期最一个项目对通信要求比較严格,须要建立长连接,且能处理多并发,所以选择了Mina框架.以下就简单记录开发的过程吧: mina 开发须要的jar包: mina pc端通信: 服务端: package ...
- 《erlang程序设计》学习笔记-第3章 分布式编程
http://blog.csdn.net/karl_max/article/details/3985382 1. erlang分布式编程的基本模型 (1) 分布式erlang:这种模型可以让我们在一个 ...
- error: invalid abbreviation code [25] for DIE at 0x0000003e in Assertion failed: (*offset_ptr == end_prologue_offset), function ParsePrologue, file /S
error: invalid abbreviation code [25] for DIE at 0x0000003e in '/Users/mac/Desktop/MYiosfiles/test/X ...
- 【BZOJ 1019】 [SHOI2008]汉诺塔
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1019 [题意] [题解] 这个题解讲得很清楚了 http://blog.sina.co ...
- Cordova app 检查更新 ----创建项目、添加插件、修改插件(一)
原文:Cordova app 检查更新 ----创建项目.添加插件.修改插件(一) 使用Cordova 进行跨平台应用程序的开发 1.创建Cordova项目 $ cordova create hell ...
- Power control within a coherent multi-processing system
Within a multi-processing system including a plurality of processor cores 4, 6operating in accordanc ...
- iOS RunLoop了解和使用
RunLoop介绍和使用 上次讲了runtime,这次是runloop,虽然两者都是run开头的名词术语,但是在OC中,这两个东西压根没啥联系.这篇文章主要讲讲runloop的一些概念和用法.其中包含 ...