<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Чтение и запись CSV файлов в Java (comma separated values file format)</title>
	<link>http://www.javenue.info/post/78</link>
	<description>Блог разработчика о Java и родственных технологиях</description>
	<pubDate>Thu, 28 Aug 2008 12:27:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>

	<item>
		<title>By: ognivo777</title>
		<link>http://www.javenue.info/post/78#comment-25762</link>
		<author>ognivo777</author>
		<pubDate>Wed, 06 Aug 2008 13:36:42 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-25762</guid>
		<description>Во первых непонятно зачем велосипед изобретать.. Есть довольно много готовых CSV библиотек.
patrick:
Про внутренние класы согласен.
Про исключения просто -  необходимо, если хочется снаружи ловить отдельно прочие исключения и исключения именно этой библиотеки.</description>
		<content:encoded><![CDATA[<p>Во первых непонятно зачем велосипед изобретать.. Есть довольно много готовых CSV библиотек.<br />
patrick:<br />
Про внутренние класы согласен.<br />
Про исключения просто -  необходимо, если хочется снаружи ловить отдельно прочие исключения и исключения именно этой библиотеки.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: patrick</title>
		<link>http://www.javenue.info/post/78#comment-25254</link>
		<author>patrick</author>
		<pubDate>Sun, 20 Jul 2008 18:08:26 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-25254</guid>
		<description>я не пойму 2 вещи
зачем делать внутренними классы Writer и Reader
и 
зачем делать свои исключения копиями стандартных, да еще и называть их также...а как же повторное использование кода?</description>
		<content:encoded><![CDATA[<p>я не пойму 2 вещи<br />
зачем делать внутренними классы Writer и Reader<br />
и<br />
зачем делать свои исключения копиями стандартных, да еще и называть их также&#8230;а как же повторное использование кода?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Крым</title>
		<link>http://www.javenue.info/post/78#comment-23196</link>
		<author>Крым</author>
		<pubDate>Tue, 15 Apr 2008 23:03:15 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-23196</guid>
		<description>Спасибо за коды, возможно пригодиться, завтра дам компьютерику на фирме.
А вот нащёт лицензирования вы зря так. Изучайте если можете создавать подобные доработки!
Напишу завтра отзыв своего хакера, он вечно чем то недоволен в Excel, может как раз то что ему нужно.</description>
		<content:encoded><![CDATA[<p>Спасибо за коды, возможно пригодиться, завтра дам компьютерику на фирме.<br />
А вот нащёт лицензирования вы зря так. Изучайте если можете создавать подобные доработки!<br />
Напишу завтра отзыв своего хакера, он вечно чем то недоволен в Excel, может как раз то что ему нужно.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: c0nst</title>
		<link>http://www.javenue.info/post/78#comment-22991</link>
		<author>c0nst</author>
		<pubDate>Tue, 08 Apr 2008 16:30:14 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-22991</guid>
		<description>Стандартное поведение библиотеки рассчитано на чтение и запись CSV файлов, которые понимает Excel.</description>
		<content:encoded><![CDATA[<p>Стандартное поведение библиотеки рассчитано на чтение и запись CSV файлов, которые понимает Excel.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexander</title>
		<link>http://www.javenue.info/post/78#comment-22982</link>
		<author>Alexander</author>
		<pubDate>Tue, 08 Apr 2008 08:53:57 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-22982</guid>
		<description>Здравствуйте! А подскажите, пожалуйста, если я все 4 параметра подставлю по умолчанию, получится Excel или Pure CSV?</description>
		<content:encoded><![CDATA[<p>Здравствуйте! А подскажите, пожалуйста, если я все 4 параметра подставлю по умолчанию, получится Excel или Pure CSV?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Samolisov Pavel</title>
		<link>http://www.javenue.info/post/78#comment-22913</link>
		<author>Samolisov Pavel</author>
		<pubDate>Sat, 05 Apr 2008 13:23:38 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-22913</guid>
		<description>Хм... я сторонник несколько иной стратегии использования исключений. Хотя может быть я не понимаю всего смысла. Предположим что возникнет рантайм-эксепшн в обычном однопоточном приложении. Оно не прибьется? 

Кстати согласен с вами что для ошибки парсера надо использовать другое исключение. Все-таки чтение файла и парсинг - разные операции. По поводу использования IllegalStateException - я думаю лучше написать свои типы сообщений, их и пробрасывать. Код использующий библиотеку будет читабельнее.</description>
		<content:encoded><![CDATA[<p>Хм&#8230; я сторонник несколько иной стратегии использования исключений. Хотя может быть я не понимаю всего смысла. Предположим что возникнет рантайм-эксепшн в обычном однопоточном приложении. Оно не прибьется? </p>
<p>Кстати согласен с вами что для ошибки парсера надо использовать другое исключение. Все-таки чтение файла и парсинг - разные операции. По поводу использования IllegalStateException - я думаю лучше написать свои типы сообщений, их и пробрасывать. Код использующий библиотеку будет читабельнее.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: c0nst</title>
		<link>http://www.javenue.info/post/78#comment-22887</link>
		<author>c0nst</author>
		<pubDate>Fri, 04 Apr 2008 16:48:56 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-22887</guid>
		<description>Спасибо большое за комментарий. Если будете ее где-нибудь использовать, напишите, что было удобно, что нет.

На счет лицензирования: К сожалению эту область я еще не изучал.

На счет Exception: Мне больше нравится использовать unchecked exceptions, но только в том случае, если ситуация действительно исключительная и не может быть обработана пользователем класса в большинстве случаев.

В случае с невалидным CSV пользователь ничего не может сделать: точнее при записи в CSV он должен переписать свой неправильный код, а при чтении - отказаться от парсинга невалидного файла.

Единственное, на счет чего я сомневаюсь - то что для ошибок невалидности формата я использовал тот же Exception, что и для обертки IOException.
Наверное для ошибок формата лучше бросать IllegalStateException с соответствующим текстом. 
Ну а IOException  я оборачиваю в RuntimeException для того, чтобы пользователь моего класса не матюкался добавляя в своих методах некрасивые конструкции типа throws или try/catch/finally :).
Если программист посчитает нужным ловить Csv.Exception, он напишет соответствующий код. Но ловить ее надо только в случае чтения/записи CSV через сеть, так как только в этом случае можно попробовать корректно решить проблему - переконнектится и дальше совершить чтение/запись.</description>
		<content:encoded><![CDATA[<p>Спасибо большое за комментарий. Если будете ее где-нибудь использовать, напишите, что было удобно, что нет.</p>
<p>На счет лицензирования: К сожалению эту область я еще не изучал.</p>
<p>На счет Exception: Мне больше нравится использовать unchecked exceptions, но только в том случае, если ситуация действительно исключительная и не может быть обработана пользователем класса в большинстве случаев.</p>
<p>В случае с невалидным CSV пользователь ничего не может сделать: точнее при записи в CSV он должен переписать свой неправильный код, а при чтении - отказаться от парсинга невалидного файла.</p>
<p>Единственное, на счет чего я сомневаюсь - то что для ошибок невалидности формата я использовал тот же Exception, что и для обертки IOException.<br />
Наверное для ошибок формата лучше бросать IllegalStateException с соответствующим текстом.<br />
Ну а IOException  я оборачиваю в RuntimeException для того, чтобы пользователь моего класса не матюкался добавляя в своих методах некрасивые конструкции типа throws или try/catch/finally :).<br />
Если программист посчитает нужным ловить Csv.Exception, он напишет соответствующий код. Но ловить ее надо только в случае чтения/записи CSV через сеть, так как только в этом случае можно попробовать корректно решить проблему - переконнектится и дальше совершить чтение/запись.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Samolisov Pavel</title>
		<link>http://www.javenue.info/post/78#comment-22883</link>
		<author>Samolisov Pavel</author>
		<pubDate>Fri, 04 Apr 2008 15:26:11 +0000</pubDate>
		<guid>http://www.javenue.info/post/78#comment-22883</guid>
		<description>Скачал библиотеку, посмотрел исходник. Код понятный, читабельный, не понял только зачем заводить свой эксепшн да еще наследуя его от RuntimeException.

З.Ы. Понравился файл с лицензией ) Имхо можно было бы выбрать что-нибудь стандартное вроде BSDL. Впрочем ваш код - ваше право.

З.Ы.Ы. Спасибо за библиотеку.</description>
		<content:encoded><![CDATA[<p>Скачал библиотеку, посмотрел исходник. Код понятный, читабельный, не понял только зачем заводить свой эксепшн да еще наследуя его от RuntimeException.</p>
<p>З.Ы. Понравился файл с лицензией ) Имхо можно было бы выбрать что-нибудь стандартное вроде BSDL. Впрочем ваш код - ваше право.</p>
<p>З.Ы.Ы. Спасибо за библиотеку.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
