?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
Enterprise Language Solutions
nyaload
_winnie
Сегодня прочитал строку из файла. Взял библитеку commons-io (благодаря maven она скачалась сама, никакого гемороя!), добавил в обще-проектный файл используемую версию библиотеки (1.4), добавил зависимость от библиотеки в том модуле, где я считываю строку из файла (всего две xml-ки).

Строчки, которые надо добавить в xml можно скопировать из online-репозитория maven в браузере, а не писать самому, всё для удобства программиста.
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${commons-io-version}</version>
    </dependency>


Добавил в исходный файл два import,
import org.apache.commons.io.FileUtils;
import java.io.File;
. Более того, второй import мне редактор сам написал, а первый я скопировал тоже из интернета. Всё само пишется, никакого ручного труда.

Ну и дальше уже можно одной строкой прочитать файл:
String info = FileUtils.readFileToString(new File("cfg/info.txt"))

  • 1
(Deleted comment)
Замечательно! У программиста есть богатый выбор фреймворков, которыми можно прочитать строку из файла!

Зато вот это вот: http://alexclear.livejournal.com/475440.html

Тут кстати один порядок количества букв в Python (если строка юникодная) и Java,

byte[] thedigest = java.security.MessageDigest.getInstance("MD5").digest( yourString.getBytes("UTF-8") );
thedigest = hashlib.md5(your_string.encode("UTF-8")).digest()

Джава такая джава :)

(Deleted comment)
из CPAN не грузят чтение файла в строку!

(Deleted comment)
Да, разумеется есть случаи, когда надо уметь потоково обрабатывать сто-гигабайтные файлы. Я даже люблю составлять и дрочить на потоковые конвееры в bash, которые одновременно фильтруют файл, пакуют его в gzip, заливает через сеть, на другой стороне - он распаковывается. И это всё параллельно, без фаз "отфитровали, сохранили. сжали, сохранили. перекачали, сохранили. разжали, сохранили."

Но распространять 1% случаев, когда это действительно полезно, на остальные 99% - дорого и неоправданное усложнение, "стрельба из пушки по воробьям", всё равно что ходить в шубе летом, вдруг внезапно снег.



Edited at 2010-12-09 11:28 pm (UTC)

Подобная функция есть в очень многих ЯП. Иногда это действительно выгоднее, нежели чтение потоково. Очень сильно зависит от задачи.

Некоторые языки, вроде хакселя, читают файл потоково, даже если написано «прочитай весь файл».

я думаю, так читают все языки. На выходе всё равно иногда нужна строка.
Пример постановки задачи, где файл в виде единой строки будет эффективен: нужно найти в маленьком файле (до полутора мб) строку(line) по RE, и вернуться на 10 строк(line) назад, чтобы прочесть что-то еще.

Жесть :)

let info = System.IO.File.ReadAllText("e:/test.cpp")

вот!

Ну, это таки разные языки. В смысле не конкурирующие.

Я виноват, да, let надо заменить на var.

Где-то не конкурирующие, а где-то и полным ходом конкурирующие. Ну это не суть важно.

s = readFile "/etc/make.conf"

Да, еще можно `cat etc/make.conf`, я знаю! См. комментарий http://users.livejournal.com/_winnie/275957.html?thread=3510261#t3510261

Почему программисты на java столь любят XML? у меня давно написан скриптик, который генерит мавеновские конфиги из conf-style

надо бы опубликовать как-нибудь.

  • 1