Самый простой способ - использовать
File("aaa").readBytes()
, который будет читать весь файл в ByteArray
. Но вы должны тщательно знать, что у вас достаточно оперативной памяти в куче, чтобы сделать это
ByteArray можно создать с помощью вызова ByteArray(100)
, где 100
- его размер
Для [ 115], вероятно, лучше использовать функцию readFully
, которая считывает именно запрошенное количество байтов.
Классический подход позволяет читать файл по частям, например,
val buff = ByteArray(1230)
File("aaa").inputStream().buffered().use { input ->
while(true) {
val sz = input.read(buff)
if (sz <= 0) break
///at that point we have a sz bytes in the buff to process
consumeArray(buff, 0, sz)
}
}
Я использовал подверсию в течение некоторых лет теперь, и я должен сказать, что лучшее введение, которое я нашел, включено в справочный файл для TortoiseSVN. TortoiseSVN является другим свободным клиентом для Windows с интеграцией Проводника. Я настоятельно рекомендую, чтобы чтение Черепахи помогло сначала, даже перед исходными документами подверсии. Где необходимый это отсылает Вас к официальным документам.
Черепаха также, оказывается, мой любимый клиент. На самом деле на большинстве машин это - единственный компонент подверсии, в котором я нуждаюсь. Это выполняет все функции, которые я обычно использую, включая создание репозитория. В то время как это не удар к обычным инструментам командной строки, и я действительно устанавливаю их также в большинстве случаев, я только считаю cli инструменты необходимыми для автоматизации из сценариев и (нечастых) функций технического обслуживания репозитория.
Я нахожусь в процессе перепроектирования нашей собственной среды сборки на работе, таким образом, я прохожу опции для большого количества сборки/средств разработки. Вот инструменты, которые я могу рекомендовать или идти с хорошими рекомендациями от других:
WinMerge: наиболее рекомендуемый свободный различный инструмент, установка после TortoiseSVN для лучшей интеграции. Я использую этот инструмент ежедневно для многих целей, некоторых за пределами разработки.
TeamCity: сервер CI, который, кажется, хорошо полируется. Я еще не попробовал этого, но это - ведущий соперник по CC.NET, учитывая мой опыт с CC.NET (год) и хорошие обзоры, которые это получает. Гудзон является другой хорошо рассмотренной опцией.
Сервер VisualSVN: рекомендуемый свободный http (s) сервер для SVN, что интеграция функций AD для полномочий и стиля Microsoft msc консоль. Я только что закончил реализовывать его на работе, и это очень просто. Необходимость, если Вы хотите удаленный (IP) регистрация/выезд, шифрование SSL, сценарии рычага репозитория и другие основанные на сервере функции.
VisualSVN: хорошо рассмотренный плагин Visual Studio для SVN. Не попробовали этого, но это рассматривается как покупка легкой задачи. [Редактирование: согласно тому, что я считал здесь на переполнении, AnkhSVN является бесплатной опцией, которая работает о том же.]
SVN-монитор: рекомендуемое бесплатное программное обеспечение монитора, которое предупреждает Вас к изменениям в репозитории. Настраивающийся относительно того, что это контролирует и меры, которые это принимает. Зависит от устанавливаемого TortoiseSVN.
BugTracker.NET: рекомендуемый свободный сервер отслеживания ошибки. Функции интеграция SVN для связи проблем, прослеживаемых с изменениями подверсии. Не уверенный, если TeamCity имеет подобную функцию, но мы уже используем это за пределами разработки для отслеживания проблем справочной службы, и это является большим для бесплатного пакета.
У меня нет опыта с поблочным тестированием, покрытием, инструментами документации для.NET, таким образом, я не могу прокомментировать там.
Я - Pythonista, хотя, таким образом, я включу одну вещь, Python может быть полезен для wrt SVN, который является, что можно пользоваться библиотекой PySVN для выполнения любого вида автоматизированной работы репозитория, это слишком сложно для сценариев с инструментами командной строки. Я использую его для создания тегов, после того как сборка готова быть отмеченной и развернутой.
Выберите некоторые из этих инструментов, и Вы будете перед игрой. При разработке процессов вокруг них и учебного персонала, ну, в общем, это - все еще задание для Вас.:)
Поскольку Вы происхождения VSS, взглянули на Крепость Хранилища и SourceGear SourceGear. Если они сделают то, что Вы хотите, то они будут более быстрыми для изучения из-за того, что они разработаны для людей с мышлением VSS.
Я думаю, что они могут даже быть свободными для малочисленных команд.
(Вы будете все еще хотеть использовать nUnit для тестирования, однако я получил бы управление исходным кодом и непрерывную интеграцию, в которой разбираются сначала.)
Если Вы действительно пойдете с Подверсией, то Вы найдете, что это очень стабильно и больше затем способно к удовлетворению потребности большей части команды. Взгляните на TortoiseSVN для легкого UI сверху Подверсии
Если Вы хотите разбудить сервер Подверсии и работающий как можно скорее, не имея необходимость знать много о repo, проверьте Визуальный SVN здесь. Это - приложение для GUI, которое позволяет Вам настроить repos, не будучи должен прочитать много документации. Существует также dimecast об этом здесь.
До интеграции с CC.NET ищите документацию CC.NET относительно блока управления подверсии здесь, у них есть вспыхнувший в их сайте довольно хорошо, и необходимо смочь найти теги XML для svn довольно легко.
Необходимо также проверить клиентские инструменты реализации, как Черепаха SVN и Анк SVN.
Для NANT проверьте эти dimecasts здесь. Большие учебные руководства о том, как использовать nant эффективно.
Я записал видео, иллюстрирующее все основы включая установку SubVersion, CruiseControl.NET. Я даже иллюстрирую поврежденную сборку. dev используемый инструмент был Delphi, но, возможно, легко был VS.NET.
Это, вероятно, не полезно вопросу под рукой, но...
Я не говорю, что нет того..., но даже если бы у Вас было это руководство, то у Вас было бы большое обучение сделать. Действительно необходимо изучить каждую из частей в изоляции перед размышлением о броске их всех вместе.