Чтение куска данных из файла
Блог 09 января 2014
На одном совещании потенциальный подрядчик гордо заявил: - Клиенты присылают нам нечеловеческие
эксемельки, и ничего, справляемся.
Маркетолог: - Я не поняла.
- Очень большие файлы.
Через некоторое время и у нас возникла проблема с
разбором.
Пришлось изготовить утилиту для чтения куска данных. Работы на 15 минут. Создаем консольное приложение на C#.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using
System.Configuration;
namespace ReadFilePart
{
class Program
{
static void Main(string[] args)
{
try
{
//считать управляющие параметры
//входной файл
string fpath =
ConfigurationManager.AppSettings["PATH"];
//выходной файл
string fpathOut = ConfigurationManager.AppSettings["PATHOUT"];
//размер куска
int MSIZE = int.Parse(ConfigurationManager.AppSettings["MSIZE"]);
//стартовая позиция
int START = int.Parse(ConfigurationManager.AppSettings["START"]);
//открыть поток чтения входного файла
FileStream fs = new FileStream(fpath, FileMode.Open);
//определить размер данных
int len = (int)fs.Length;
if (len > MSIZE)
len = MSIZE;
byte[] bs = new byte[len];
//считать часть данных
fs.Read(bs, START, len);
//открыть поток записи выходного файла
FileStream fsOut = new FileStream(fpathOut,
FileMode.Create);
//записать данные
fsOut.Write(bs, 0, len);
//закрыть потоки
fs.Close
();
fsOut.Close();
}
catch (Exception ex)
{
//показать ошибку
Console.WriteLine(ex.ToString());
Console.ReadKey();
}
}
}
}
Пример конфигурационного файла.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key=
"PATH" value="c: empym.xml"/>
<add key="PATHOUT" value="c: empym1.xml"/>
<add key="MSIZE" value="100000"/>
<add key=
"START" value="0"/>
</appSettings>
</configuration>
Комментарии
Комментариев еще нет.
Добавить комментарий могут только авторизованные пользователи.
Авторизоваться