<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Can I change this later???</title>
	
	<link>http://www.vainolo.com</link>
	<description>My thoughts, ideas.</description>
	<lastBuildDate>Mon, 21 May 2012 11:15:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/vainolo/entries" /><feedburner:info uri="vainolo/entries" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Gav Yam (Bayside): A Stock to Sleep Well at Night</title>
		<link>http://feedproxy.google.com/~r/vainolo/entries/~3/HrG0CrvBldQ/</link>
		<comments>http://www.vainolo.com/2012/05/21/gav-yam-bayside-a-stock-to-sleep-well-at-night/#comments</comments>
		<pubDate>Mon, 21 May 2012 11:12:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Investing]]></category>
		<category><![CDATA[Gav Yam]]></category>
		<category><![CDATA[israel]]></category>
		<category><![CDATA[Real estate]]></category>

		<guid isPermaLink="false">http://www.vainolo.com/?p=1235</guid>
		<description><![CDATA[Gav Yam (or in her english name Bayside) is a company that develops and rents industrial real-estate and develops residential projects in Israel. It is a very old company (for Israeli standards), founded in 1928 to help develop the industrial infrastructure of the yet to be born country. The company is a public primarily owned by Nechasim UBinian (Property and Building Corporation in English&#8230; a very imaginative name), which in turn is owned by larger Israeli concerns in a not-so-long chain of companies. The following information was extracted from the 2011 yearly statements. The company owns many industrial parks &#8211; a &#8230; <a class="more-link" href="http://www.vainolo.com/2012/05/21/gav-yam-bayside-a-stock-to-sleep-well-at-night/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tase.co.il/TASE/General/Company/companyMainData.htm?ShareID=00759019&amp;CompanyID=000759&amp;subDataType=0&amp;">Gav Yam</a> (or in her english name <a href="http://www.tase.co.il/TASEEng/General/Company/companyDetails.htm?subDataType=0&amp;companyID=000759&amp;shareID=00759019">Bayside</a>) is a company that develops and rents industrial real-estate and develops residential projects in Israel. It is a very old company (for Israeli standards), founded in 1928 to help develop the industrial infrastructure of the yet to be born country. The company is a public primarily owned by <a href="http://www.tase.co.il/TASE/General/Company/companyMainData.htm?ShareID=00699017&amp;CompanyID=000699&amp;subDataType=0&amp;">Nechasim UBinian</a> (<a href="http://www.tase.co.il/TASEEng/General/Company/companyMainData.htm?companyID=000699&amp;subDataType=0&amp;shareID=00699017">Property and Building Corporation</a> in English&#8230; a very imaginative name), which in turn is owned by larger Israeli concerns in a not-so-long chain of companies. The following information was extracted from the 2011 yearly statements.</p>
<p>The company owns many industrial parks &#8211; a total of 743K sq. meters, in inflation-adjusted long-term contracts, with an occupation rate of 96%, which produced for the company an income of 330 Million Shekels in 2011.</p>
<p>In the residential sector, the company finished selling all units in two projects it had, and started selling a new project. From these sales the company received 5.1 Million Shekels in 2011.</p>
<p>The company has very interesting assets:</p>
<ol>
<li>Haifa Matam Park: Home of Intel, Microsoft, Google, Elbit, Phillips and many other high-tech companies. It contains 194K sq. m. rental space of which 145K sq. m. are office space. The occupation rate of this asset is 97%. This assets gives a return of 8.4% on its value, which was calculated as 1,088,497K Shekels, almost one fourth of the company&#8217;s long term assets.</li>
<li>Herzlya North: Home of more hi-tech companies, one of them Microsoft. It contains 114K sq. m. rental space of which 44K sq. m. are office space. The occupation rate of this asset is 98%. This assets gives a return of 7.8% on its value, which was calculated as 721,160K shekels.</li>
</ol>
<p><span style="font-size: 14px;">Overall, the company&#8217;s assets give a return of 8.6%, on assets valued at 3,231,870K Shekels, with an occupation rate of 96.5%. Pretty nice.</span></p>
<p><span style="font-size: 14px;">The company is also developing a number of projects, extending the Herlyza and Matam parks and building a full hi-tech park in Beer-Sheva similar to the Matam park. From a presentation to investors, the company is building 266K sq. m. more of office space that will be available for rent in the future (2-3) years.</span></p>
<p>The company&#8217;s stock price has grown 21% since 2000. It had a high valuation in 2006 of 1000 Shekels, from which it went to 410 Shekels in the hysteria of the sub-prime crisis. Now it hovers around 800, going up and down as the winds of the stock exchange carry it, with no real direction.</p>
<p style="text-align: center;"><a href="http://www.vainolo.com/wp-content/uploads/2012/05/gav.yam_.share_.price_.2000-2012.jpg"><img class="aligncenter  wp-image-1238" title="gav.yam.share.price.2000-2012" src="http://www.vainolo.com/wp-content/uploads/2012/05/gav.yam_.share_.price_.2000-2012.jpg" alt="" width="552" height="271" /></a></p>
<p>The stock&#8217;s behavior can be expected from how the company has operated in the last years. The stock&#8217;s EPS since 2005 has been a roller-coaster:</p>
<p style="text-align: center;"><a href="http://www.vainolo.com/wp-content/uploads/2012/05/gav.yam_.eps_.2005-2012.jpg"><img class="aligncenter  wp-image-1239" title="gav.yam.eps.2005-2012" src="http://www.vainolo.com/wp-content/uploads/2012/05/gav.yam_.eps_.2005-2012.jpg" alt="" width="451" height="271" /></a></p>
<p>Here are some numbers from the latest (2011) yearly statements (all numbers are in terms of thousands shekels):</p>
<table border="0">
<tbody>
<tr>
<td style="text-align: center;" colspan="5"><strong>Balance Sheet</strong></td>
</tr>
<tr>
<td></td>
<td></td>
<td style="text-align: center;"><strong>2011</strong></td>
<td style="text-align: center;"><strong>2010</strong></td>
<td style="text-align: center;"><strong>2009</strong></td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td></td>
<td style="text-align: right;"></td>
<td style="text-align: right;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td></td>
<td>Current</td>
<td style="text-align: right;">592420</td>
<td style="text-align: right;">601327</td>
<td style="text-align: right;">648128</td>
</tr>
<tr>
<td></td>
<td>Long-Term</td>
<td style="text-align: right;">4719895</td>
<td style="text-align: right;">4249547</td>
<td style="text-align: right;">4045987</td>
</tr>
<tr>
<td></td>
<td><strong>Total Assets</strong></td>
<td style="text-align: right;"><strong>5312315</strong></td>
<td style="text-align: right;"><strong>4850874</strong></td>
<td style="text-align: right;"><strong>4694115</strong></td>
</tr>
<tr>
<td><strong>Liabilities</strong></td>
<td></td>
<td style="text-align: right;"></td>
<td style="text-align: right;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td></td>
<td>Short-Term</td>
<td style="text-align: right;">531098</td>
<td style="text-align: right;">409376</td>
<td style="text-align: right;">370722</td>
</tr>
<tr>
<td></td>
<td>Long-Term</td>
<td style="text-align: right;">2842287</td>
<td style="text-align: right;">2397595</td>
<td style="text-align: right;">2355095</td>
</tr>
<tr>
<td></td>
<td>Shareholder&#8217;s Equity</td>
<td style="text-align: right;">1938930</td>
<td style="text-align: right;">2043903</td>
<td style="text-align: right;">1968298</td>
</tr>
<tr>
<td></td>
<td><strong>Total Liabilities</strong></td>
<td style="text-align: right;"><strong>5312315</strong></td>
<td style="text-align: right;"><strong>4850874</strong></td>
<td style="text-align: right;"><strong>4694115</strong></td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td style="text-align: center;" colspan="4"><strong>Income Statement</strong></td>
</tr>
<tr>
<td></td>
<td style="text-align: center;"><strong>2011</strong></td>
<td style="text-align: center;"><strong>2010</strong></td>
<td style="text-align: center;"><strong>2009</strong></td>
</tr>
<tr>
<td>Revenues</td>
<td style="text-align: right;">475731</td>
<td style="text-align: right;">474686</td>
<td style="text-align: right;">532200</td>
</tr>
<tr>
<td>Operating Income</td>
<td style="text-align: right;">416103</td>
<td style="text-align: right;">410421</td>
<td style="text-align: right;">384702</td>
</tr>
<tr>
<td>Net Income</td>
<td style="text-align: right;">85613</td>
<td style="text-align: right;">231479</td>
<td style="text-align: right;">286356</td>
</tr>
<tr>
<td><strong>EPS</strong></td>
<td style="text-align: right;"><strong>34.51</strong></td>
<td style="text-align: right;"><strong>95.08</strong></td>
<td style="text-align: right;"><strong>110.61</strong></td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td style="text-align: center;" colspan="4"><strong>Cash Flow</strong></td>
</tr>
<tr>
<td></td>
<td style="text-align: center;">2011</td>
<td style="text-align: center;">2010</td>
<td style="text-align: center;">2009</td>
</tr>
<tr>
<td>Operations Cash-flow</td>
<td style="text-align: right;">267342</td>
<td style="text-align: right;">290537</td>
<td style="text-align: right;">341621</td>
</tr>
<tr>
<td>Investments Cash-flow</td>
<td style="text-align: right;">-64368</td>
<td style="text-align: right;">-107914</td>
<td style="text-align: right;">-293419</td>
</tr>
<tr>
<td>Financing Cash-flow</td>
<td style="text-align: right;">-83597</td>
<td style="text-align: right;">-270410</td>
<td style="text-align: right;">-221327</td>
</tr>
<tr>
<td><strong>Total Cash-flow</strong></td>
<td style="text-align: right;"><strong>119377</strong></td>
<td style="text-align: right;"><strong>-87787</strong></td>
<td style="text-align: right;"><strong>-173125</strong></td>
</tr>
<tr>
<td>Cash at end of period</td>
<td style="text-align: right;">345960</td>
<td style="text-align: right;">226583</td>
<td style="text-align: right;">314370</td>
</tr>
</tbody>
</table>
<p>What I read from these statements is:</p>
<ol>
<li>Consistent cash flow.</li>
<li>Lots of assets.</li>
<li>In 2011 the company had small income because it paid lots of taxes (I read that in the company&#8217;s statements).</li>
<li>Many liabilities, but most of them are long term, which will be paid in the next 5 to 10 years. Since the company generated very good cash flow from its rents, I don&#8217;t think it will have a problem paying.</li>
</ol>
<p>Gav Yam has distributed dividends regularly since 2002, even doing so in the height of the real-estate crisis, which didn&#8217;t even touch the company:</p>
<p style="text-align: center;"><a href="http://www.vainolo.com/wp-content/uploads/2012/05/gav.yam_.dividends.2002-20121.jpg"><img class="aligncenter  wp-image-1237" title="gav.yam.dividends.2002-2012" src="http://www.vainolo.com/wp-content/uploads/2012/05/gav.yam_.dividends.2002-20121.jpg" alt="" width="443" height="216" /></a></p>
<p>It is hard to say that there is a trend to increase the dividends, and the company does not have a dividend policy, but since it is owned by holding companies that need the money to pay for their acquisitions, I thinks dividends will continue to flow.</p>
<p>Reading the numbers, Gav Yam does not look like a promising company. But from my point of view, it is. It has great assets, and even greater projects. It has debt, I don&#8217;t think they will have a problem serving it, both in the short and long terms.</p>
<p>If you have ideas how to better analyze this company, please commend. I&#8217;ll do my best to improve with time.</p>
<p>Disclaimer: I am not a certified investor of any kind. These are my personal views and are solely for informational purposes. The numbers I have provided here were digged up by me from many sources and may be wrong in many places. User discretion is advised. I may or may not own the stocks named in this post. This message will not self destruct in 5 seconds.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/?px"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=6040b1bd-ea6f-4b1b-a51b-36d7e2c991de" alt="Enhanced by Zemanta" /></a></div>
<p>Related posts:</p><ol>
<li><a href='http://www.vainolo.com/2010/08/09/my-latest-analysis/' rel='bookmark' title='My Latest Analysis'>My Latest Analysis</a></li>
<li><a href='http://www.vainolo.com/2011/01/25/delek-nadlan-bonds-speculate-on-tshuvas-image/' rel='bookmark' title='Delek Nadlan Bonds &#8211; Speculate on Tshuva&#8217;s Image'>Delek Nadlan Bonds &#8211; Speculate on Tshuva&#8217;s Image</a></li>
<li><a href='http://www.vainolo.com/2010/06/16/the-price-of-stocks/' rel='bookmark' title='The Price of Stocks'>The Price of Stocks</a></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/ROHXf1xaC1aCitcnIPLQLPbGkCM/0/da"><img src="http://feedads.g.doubleclick.net/~a/ROHXf1xaC1aCitcnIPLQLPbGkCM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ROHXf1xaC1aCitcnIPLQLPbGkCM/1/da"><img src="http://feedads.g.doubleclick.net/~a/ROHXf1xaC1aCitcnIPLQLPbGkCM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/vainolo/entries/~4/HrG0CrvBldQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.vainolo.com/2012/05/21/gav-yam-bayside-a-stock-to-sleep-well-at-night/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.vainolo.com/2012/05/21/gav-yam-bayside-a-stock-to-sleep-well-at-night/</feedburner:origLink></item>
		<item>
		<title>Enabling Select-All Action in a GEF Editor</title>
		<link>http://feedproxy.google.com/~r/vainolo/entries/~3/gBzISvzpRnw/</link>
		<comments>http://www.vainolo.com/2012/05/17/enabling-select-all-action-in-a-gef-editor/#comments</comments>
		<pubDate>Wed, 16 May 2012 21:19:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[GEF]]></category>
		<category><![CDATA[Select All]]></category>

		<guid isPermaLink="false">http://www.vainolo.com/?p=1226</guid>
		<description><![CDATA[Today I was working on a model using my OPM GEF editor, and wanted to select all elements of the model&#8230; but for some strange reason the &#8220;Select All&#8221; action in the &#8220;Edit&#8221; menu was disabled&#8230; So I started to investigate. First, the &#8220;Select All&#8221; action should be similar to other eclipse standard actions, like &#8220;Undo&#8221; and &#8220;Delete&#8221;, so I expected some treatment similar to these actions &#8211; a SelectAllRetargetAction or something similar. There is a SelectAllAction class in the GEF framework, but I was not sure how to plug it in. First, I saw that this action was already &#8230; <a class="more-link" href="http://www.vainolo.com/2012/05/17/enabling-select-all-action-in-a-gef-editor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I was working on a model using my OPM GEF editor, and wanted to select all elements of the model&#8230; but for some strange reason the &#8220;Select All&#8221; action in the &#8220;Edit&#8221; menu was disabled&#8230; So I started to investigate.</p>
<p>First, the &#8220;Select All&#8221; action should be similar to other eclipse standard actions, like &#8220;Undo&#8221; and &#8220;Delete&#8221;, so I expected some treatment similar to these actions &#8211; a <code>SelectAllRetargetAction</code> or something similar. There is a <code>SelectAllAction</code> class in the GEF framework, but I was not sure how to plug it in. First, I saw that this action was already registered in the <code>actionRegistry</code> in <code>GraphicalEditor.createActions()</code> function. So why was it disabled? More code reading showed me that also the undo and redo actions are registered there, but I also had to create for them a retargetable action in the <code>ActionBarContributor</code> of my editor. So I added this code to the <code>OPMGraphicalEditorActionBarContributor.buildActions()</code> method (the last line):</p>
<pre class="brush: java; first-line: 20; title: ; notranslate">
	@Override
	protected void buildActions() {
		addRetargetAction(new UndoRetargetAction());
		addRetargetAction(new RedoRetargetAction());
		addRetargetAction(new DeleteRetargetAction());
		addRetargetAction(new RetargetAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY,
				GEFMessages.ToggleGrid_Label,
				IAction.AS_CHECK_BOX));
		addRetargetAction(new RetargetAction(GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY,
				GEFMessages.ToggleSnapToGeometry_Label,
				IAction.AS_CHECK_BOX));
		addRetargetAction(new RetargetAction(GEFActionConstants.SELECT_ALL, GEFMessages.SelectAllAction_Label));
	}
</pre>
<p>The &#8220;Select All&#8221; menu item became available and the action worked, even with the expected &#8220;Ctrl+A&#8221; keyboard accelerator. But the editor showed me that the <code>GEFActionConstants.SELECT_ALL</code> constant is deprecated, and that I should use the <code>ActionFactory.SELECT_ALL.getId()</code>&#8230; I scratched my head a bit&#8230; I had a new lead on my problem, but where to search for clues? Obviously, the <code>org.eclipse.gef.examples.logic</code> project! And there it was: the <code>ActionBarContributor.declareGlobalActionKeys()</code> function calls <code>addGlobalActionKey(ActionFactory.SELECT_ALL.getId())</code>. In two minutes I removed my old line and added this one to my contributor class, and there it was again, the &#8220;Select All&#8221; action worked, and the code was clean of warnings.</p>
<p>Seems strange to me that although the action was already registered, only when I added here the action became available. The name of the function (and it&#8217;s location) is also confusing: why the <code>Bar</code> in <code>ActionBarContributor</code>? And another nice thing in the code of this class is the warning in the class comment:</p>
<pre class="brush: java; title: ; notranslate">
/**
 * Contributes actions to the workbench. !!Warning: This class is subject to
 * change.
 */
</pre>
<p>But the &#8220;Select All&#8221; action works, and that is what matters.</p>
<p>Related posts:</p><ol>
<li><a href='http://www.vainolo.com/2011/08/01/creating-a-gef-editor-%e2%80%93-part-12-enable-save-action-on-the-editor/' rel='bookmark' title='Creating a GEF Editor – Part 12: Enable Save Action on the Editor'>Creating a GEF Editor – Part 12: Enable Save Action on the Editor</a></li>
<li><a href='http://www.vainolo.com/2011/09/04/creating-an-opm-gef-editor-%e2%80%93-part-18-snapping-to-grid-and-to-geometry/' rel='bookmark' title='Creating an OPM GEF Editor – Part 18: Snapping to Grid and to Geometry'>Creating an OPM GEF Editor – Part 18: Snapping to Grid and to Geometry</a></li>
<li><a href='http://www.vainolo.com/2011/07/10/creating-a-gef-editor-%e2%80%93-part-8-delete-undo-and-redo/' rel='bookmark' title='Creating a GEF Editor – Part 8: Delete, Undo and Redo'>Creating a GEF Editor – Part 8: Delete, Undo and Redo</a></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/WqUjWRtxWZXwdMCpWGP2MpliXpg/0/da"><img src="http://feedads.g.doubleclick.net/~a/WqUjWRtxWZXwdMCpWGP2MpliXpg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WqUjWRtxWZXwdMCpWGP2MpliXpg/1/da"><img src="http://feedads.g.doubleclick.net/~a/WqUjWRtxWZXwdMCpWGP2MpliXpg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/vainolo/entries/~4/gBzISvzpRnw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.vainolo.com/2012/05/17/enabling-select-all-action-in-a-gef-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.vainolo.com/2012/05/17/enabling-select-all-action-in-a-gef-editor/</feedburner:origLink></item>
		<item>
		<title>Font Change</title>
		<link>http://feedproxy.google.com/~r/vainolo/entries/~3/oBJnDQvddRA/</link>
		<comments>http://www.vainolo.com/2012/05/14/font-change/#comments</comments>
		<pubDate>Mon, 14 May 2012 07:41:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.vainolo.com/?p=1217</guid>
		<description><![CDATA[After previewing some of my posts I saw that the font I chose for my site (Tahoma) is very hard to read. So after reading some discussions about which font is the most readable, the site is now in Verdana font. A definite improvement. Related posts: The Seven Laws of Investing]]></description>
			<content:encoded><![CDATA[<p>After previewing some of my posts I saw that the font I chose for my site (Tahoma) is very hard to read. So after reading <a href="http://stackoverflow.com/questions/340923/what-is-the-most-readable-as-well-as-appealing-font">some discussions</a> about which font is the most readable, the site is now in Verdana font. A definite improvement.</p>
<p>Related posts:</p><ol>
<li><a href='http://www.vainolo.com/2011/05/25/the-seven-laws-of-investing/' rel='bookmark' title='The Seven Laws of Investing'>The Seven Laws of Investing</a></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/4V1U19mi8_Kr-1WwXA7Y-KJq72U/0/da"><img src="http://feedads.g.doubleclick.net/~a/4V1U19mi8_Kr-1WwXA7Y-KJq72U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4V1U19mi8_Kr-1WwXA7Y-KJq72U/1/da"><img src="http://feedads.g.doubleclick.net/~a/4V1U19mi8_Kr-1WwXA7Y-KJq72U/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/vainolo/entries/~4/oBJnDQvddRA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.vainolo.com/2012/05/14/font-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.vainolo.com/2012/05/14/font-change/</feedburner:origLink></item>
		<item>
		<title>Extracting the Contents of a Zip File in Java</title>
		<link>http://feedproxy.google.com/~r/vainolo/entries/~3/4AyceUfBH34/</link>
		<comments>http://www.vainolo.com/2012/05/08/1173/#comments</comments>
		<pubDate>Tue, 08 May 2012 12:25:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://www.vainolo.com/?p=1173</guid>
		<description><![CDATA[The following short program shows how to extract all of the files that are inside a Zip file. Java provides us with a number of classes to work with zip files, and their use is pretty straightforward. To extract the files to their original directories, I also had to create the directory in the file system. Some thoughts on my implementation: First, I do no parameter validation or error checking. So what can happen? here are a few examples: The input file may not exist. The input file exists but is not a zip file. The output directory does not &#8230; <a class="more-link" href="http://www.vainolo.com/2012/05/08/1173/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The following short program shows how to extract all of the files that are inside a Zip file. <a class="zem_slink" title="Java (programming language)" href="http://www.oracle.com/technetwork/java/" rel="homepage">Java</a> provides us with a number of classes to work with zip files, and their use is pretty straightforward. To extract the files to their original directories, I also had to create the directory in the file system.</p>
<script>document.write('<link rel="stylesheet" href="https://gist.github.com/stylesheets/gist/embed.css"/>')

document.write('<div id=\"gist-2633812\" class=\"gist\">\n\n        <div class=\"gist-file\">\n          <div class=\"gist-data gist-syntax\">\n              <div class=\"gist-highlight\"><pre><div class=\'line\' id=\'LC1\'><span class=\"cm\">/*******************************************************************************<\/span><\/div><div class=\'line\' id=\'LC2\'><span class=\"cm\"> * Copyright (c) 2012 Arieh &#39;Vainolo&#39; Bibliowicz<\/span><\/div><div class=\'line\' id=\'LC3\'><span class=\"cm\"> * You can use this code for educational purposes. For any other uses<\/span><\/div><div class=\'line\' id=\'LC4\'><span class=\"cm\"> * please contact me: vainolo@gmail.com<\/span><\/div><div class=\'line\' id=\'LC5\'><span class=\"cm\"> *******************************************************************************/<\/span><\/div><div class=\'line\' id=\'LC6\'><span class=\"kn\">package<\/span> <span class=\"n\">com<\/span><span class=\"o\">.<\/span><span class=\"na\">vainolo<\/span><span class=\"o\">.<\/span><span class=\"na\">examples<\/span><span class=\"o\">.<\/span><span class=\"na\">file<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC7\'><br/><\/div><div class=\'line\' id=\'LC8\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.io.BufferedInputStream<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC9\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.io.BufferedOutputStream<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC10\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.io.File<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC11\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.io.FileOutputStream<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC12\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.io.IOException<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC13\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.Enumeration<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC14\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.zip.ZipEntry<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC15\'><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.zip.ZipFile<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC16\'><br/><\/div><div class=\'line\' id=\'LC17\'><span class=\"cm\">/**<\/span><\/div><div class=\'line\' id=\'LC18\'><span class=\"cm\"> * Extract a zip file to a folder. No error checking or argument validation is done.<\/span><\/div><div class=\'line\' id=\'LC19\'><span class=\"cm\"> * <\/span><\/div><div class=\'line\' id=\'LC20\'><span class=\"cm\"> * @author vainolo<\/span><\/div><div class=\'line\' id=\'LC21\'><span class=\"cm\"> */<\/span><\/div><div class=\'line\' id=\'LC22\'><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ZipExtracter<\/span> <span class=\"o\">{<\/span><\/div><div class=\'line\' id=\'LC23\'>	<span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">openZipFile<\/span><span class=\"o\">(<\/span><span class=\"n\">String<\/span> <span class=\"n\">zipFilename<\/span><span class=\"o\">,<\/span> <span class=\"n\">String<\/span> <span class=\"n\">destinationDirname<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"n\">IOException<\/span> <span class=\"o\">{<\/span><\/div><div class=\'line\' id=\'LC24\'>		<span class=\"kt\">byte<\/span><span class=\"o\">[]<\/span> <span class=\"n\">buffer<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"kt\">byte<\/span><span class=\"o\">[<\/span><span class=\"mi\">1024<\/span><span class=\"o\">];<\/span><\/div><div class=\'line\' id=\'LC25\'>		<span class=\"kt\">int<\/span> <span class=\"n\">bytesRead<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span><\/div><div class=\'line\' id=\'LC26\'>		<span class=\"n\">File<\/span> <span class=\"n\">zipFile<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">File<\/span><span class=\"o\">(<\/span><span class=\"n\">zipFilename<\/span><span class=\"o\">);<\/span><\/div><div class=\'line\' id=\'LC27\'>		<span class=\"n\">File<\/span> <span class=\"n\">destinationDir<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">File<\/span><span class=\"o\">(<\/span><span class=\"n\">destinationDirname<\/span><span class=\"o\">);<\/span><\/div><div class=\'line\' id=\'LC28\'><br/><\/div><div class=\'line\' id=\'LC29\'>		<span class=\"n\">ZipFile<\/span> <span class=\"n\">zip<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">ZipFile<\/span><span class=\"o\">(<\/span><span class=\"n\">zipFile<\/span><span class=\"o\">);<\/span><\/div><div class=\'line\' id=\'LC30\'>		<span class=\"n\">Enumeration<\/span><span class=\"o\">&lt;?<\/span> <span class=\"kd\">extends<\/span> <span class=\"n\">ZipEntry<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">zipEntries<\/span> <span class=\"o\">=<\/span> <span class=\"n\">zip<\/span><span class=\"o\">.<\/span><span class=\"na\">entries<\/span><span class=\"o\">();<\/span><\/div><div class=\'line\' id=\'LC31\'>		<span class=\"k\">while<\/span> <span class=\"o\">(<\/span><span class=\"n\">zipEntries<\/span><span class=\"o\">.<\/span><span class=\"na\">hasMoreElements<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span><\/div><div class=\'line\' id=\'LC32\'>			<span class=\"n\">ZipEntry<\/span> <span class=\"n\">entry<\/span> <span class=\"o\">=<\/span> <span class=\"n\">zipEntries<\/span><span class=\"o\">.<\/span><span class=\"na\">nextElement<\/span><span class=\"o\">();<\/span><\/div><div class=\'line\' id=\'LC33\'>			<span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">entry<\/span><span class=\"o\">.<\/span><span class=\"na\">isDirectory<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span><\/div><div class=\'line\' id=\'LC34\'>				<span class=\"n\">File<\/span> <span class=\"n\">newDir<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">File<\/span><span class=\"o\">(<\/span><span class=\"n\">destinationDir<\/span><span class=\"o\">,<\/span> <span class=\"n\">entry<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">());<\/span><\/div><div class=\'line\' id=\'LC35\'>				<span class=\"n\">newDir<\/span><span class=\"o\">.<\/span><span class=\"na\">mkdirs<\/span><span class=\"o\">();<\/span><\/div><div class=\'line\' id=\'LC36\'>			<span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"o\">{<\/span><\/div><div class=\'line\' id=\'LC37\'>				<span class=\"n\">BufferedInputStream<\/span> <span class=\"n\">inputStream<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BufferedInputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">zip<\/span><span class=\"o\">.<\/span><span class=\"na\">getInputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">entry<\/span><span class=\"o\">));<\/span><\/div><div class=\'line\' id=\'LC38\'>				<span class=\"n\">File<\/span> <span class=\"n\">outputFile<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">File<\/span><span class=\"o\">(<\/span><span class=\"n\">destinationDir<\/span><span class=\"o\">,<\/span> <span class=\"n\">entry<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">());<\/span><\/div><div class=\'line\' id=\'LC39\'>				<span class=\"n\">BufferedOutputStream<\/span> <span class=\"n\">outputStream<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BufferedOutputStream<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">FileOutputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">outputFile<\/span><span class=\"o\">));<\/span><\/div><div class=\'line\' id=\'LC40\'>				<span class=\"k\">while<\/span> <span class=\"o\">((<\/span><span class=\"n\">bytesRead<\/span> <span class=\"o\">=<\/span> <span class=\"n\">inputStream<\/span><span class=\"o\">.<\/span><span class=\"na\">read<\/span><span class=\"o\">(<\/span><span class=\"n\">buffer<\/span><span class=\"o\">))<\/span> <span class=\"o\">!=<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span><\/div><div class=\'line\' id=\'LC41\'>					<span class=\"n\">outputStream<\/span><span class=\"o\">.<\/span><span class=\"na\">write<\/span><span class=\"o\">(<\/span><span class=\"n\">buffer<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"n\">bytesRead<\/span><span class=\"o\">);<\/span><\/div><div class=\'line\' id=\'LC42\'>				<span class=\"o\">}<\/span><\/div><div class=\'line\' id=\'LC43\'>				<span class=\"n\">inputStream<\/span><span class=\"o\">.<\/span><span class=\"na\">close<\/span><span class=\"o\">();<\/span><\/div><div class=\'line\' id=\'LC44\'>				<span class=\"n\">outputStream<\/span><span class=\"o\">.<\/span><span class=\"na\">close<\/span><span class=\"o\">();<\/span><\/div><div class=\'line\' id=\'LC45\'>			<span class=\"o\">}<\/span><\/div><div class=\'line\' id=\'LC46\'>		<span class=\"o\">}<\/span><\/div><div class=\'line\' id=\'LC47\'>	<span class=\"o\">}<\/span><\/div><div class=\'line\' id=\'LC48\'><span class=\"o\">}<\/span><\/div><\/pre><\/div>\n          <\/div>\n\n          <div class=\"gist-meta\">\n            <a href=\"https://gist.github.com/raw/2633812/5e997fd28ea55738d2dffdf39f24c63061e82924/ZipExtracter.java\" style=\"float:right;\">view raw<\/a>\n            <a href=\"https://gist.github.com/2633812#file_zip_extracter.java\" style=\"float:right;margin-right:10px;color:#666\">ZipExtracter.java<\/a>\n            <a href=\"https://gist.github.com/2633812\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n          <\/div>\n        <\/div>\n<\/div>\n')
</script><div style='margin-bottom:1em;padding:0;'><noscript><code><pre style='overflow:auto;margin:0;padding:0;border:1px solid #DDD;'>/*******************************************************************************
 * Copyright (c) 2012 Arieh 'Vainolo' Bibliowicz
 * You can use this code for educational purposes. For any other uses
 * please contact me: vainolo@gmail.com
 *******************************************************************************/
package com.vainolo.examples.file;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

/**
 * Extract a zip file to a folder. No error checking or argument validation is done.
 * 
 * @author vainolo
 */
public class ZipExtracter {
	public static void openZipFile(String zipFilename, String destinationDirname) throws IOException {
		byte[] buffer = new byte[1024];
		int bytesRead = 0;
		File zipFile = new File(zipFilename);
		File destinationDir = new File(destinationDirname);

		ZipFile zip = new ZipFile(zipFile);
		Enumeration&lt;? extends ZipEntry&gt; zipEntries = zip.entries();
		while (zipEntries.hasMoreElements()) {
			ZipEntry entry = zipEntries.nextElement();
			if (entry.isDirectory()) {
				File newDir = new File(destinationDir, entry.getName());
				newDir.mkdirs();
			} else {
				BufferedInputStream inputStream = new BufferedInputStream(zip.getInputStream(entry));
				File outputFile = new File(destinationDir, entry.getName());
				BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFile));
				while ((bytesRead = inputStream.read(buffer)) != -1) {
					outputStream.write(buffer, 0, bytesRead);
				}
				inputStream.close();
				outputStream.close();
			}
		}
	}
}</pre></code></noscript></div>
<p>Some thoughts on my implementation:</p>
<p>First, I do no parameter validation or error checking. So what can happen? here are a few examples:</p>
<ul>
<li>The input file may not exist.</li>
<li>The input file exists but is not a zip file.</li>
<li>The output directory does not exist.</li>
<li>Problems may occur in the middle of the process of reading from the input file or writing to the file system (for example if your output file system is a network disk and your cat just ate the network cable).</li>
</ul>
<p>As you can see, many things can go wrong (and will), so a GOOD implementation (not a simple example) should check for these problems and deal with them as best as it can. I personally don&#8217;t like the way Java forces you to catch all exceptions, because it makes code harder to read. But in real systems you cannot have this luxury.</p>
<p>Second, the implementation assumes that the <code>Enumeration</code> returned by the <code><a class="zem_slink" title="ZIP (file format)" href="http://en.wikipedia.org/wiki/ZIP_%28file_format%29" rel="wikipedia">ZipFile</a></code> is ordered &#8211; directories before the files in the directories. I didn&#8217;t find any comments about this in the documentation of <code>ZipFile</code>&#8230; maybe it&#8217;s part of the zip standard.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=9eacdb41-0c83-466a-9349-075a1f972e36" alt="Enhanced by Zemanta" /></a></div>
<p>Related posts:</p><ol>
<li><a href='http://www.vainolo.com/2012/05/07/java-examples-repository-first-example-copy-a-file-from-a-url-to-a-local-path/' rel='bookmark' title='Java Examples Repository &#8211; First Example: Copy a File from a URL to a Local Path'>Java Examples Repository &#8211; First Example: Copy a File from a URL to a Local Path</a></li>
<li><a href='http://www.vainolo.com/2011/06/22/creating-a-gef-editor-%e2%80%93-part-5-loading-the-model-from-an-emf-file/' rel='bookmark' title='Creating a GEF Editor – Part 5: Loading the Model from an EMF File'>Creating a GEF Editor – Part 5: Loading the Model from an EMF File</a></li>
<li><a href='http://www.vainolo.com/2011/05/24/the-quest-for-the-perfect-java-graph-framework/' rel='bookmark' title='The Quest for the Perfect Java Graph Framework'>The Quest for the Perfect Java Graph Framework</a></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/fmVYRsaQ12JrwPP-Cj9snyXc2wA/0/da"><img src="http://feedads.g.doubleclick.net/~a/fmVYRsaQ12JrwPP-Cj9snyXc2wA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fmVYRsaQ12JrwPP-Cj9snyXc2wA/1/da"><img src="http://feedads.g.doubleclick.net/~a/fmVYRsaQ12JrwPP-Cj9snyXc2wA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/vainolo/entries/~4/4AyceUfBH34" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.vainolo.com/2012/05/08/1173/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.vainolo.com/2012/05/08/1173/</feedburner:origLink></item>
		<item>
		<title>Java Examples Repository – First Example: Copy a File from a URL to a Local Path</title>
		<link>http://feedproxy.google.com/~r/vainolo/entries/~3/Pz_x1-TdK14/</link>
		<comments>http://www.vainolo.com/2012/05/07/java-examples-repository-first-example-copy-a-file-from-a-url-to-a-local-path/#comments</comments>
		<pubDate>Sun, 06 May 2012 21:42:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://www.vainolo.com/?p=1166</guid>
		<description><![CDATA[There are programming tasks that I don&#8217;t do a lot, and they are forgotten in the depths of my brain, never to be seen again. That is why I try to store all of the code I have written so that I can fetch examples when needed (and now that github exists, why not share it with the world?). So my first example in the new public repository is this: how to copy a file (maybe binary) from a URL to a local path. The code is pretty simple: The code is available on the Vainosamples repository. Oh, and if &#8230; <a class="more-link" href="http://www.vainolo.com/2012/05/07/java-examples-repository-first-example-copy-a-file-from-a-url-to-a-local-path/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are programming tasks that I don&#8217;t do a lot, and they are forgotten in the depths of my brain, never to be seen again. That is why I try to store all of the code I have written so that I can fetch examples when needed (and now that <a href="github.com">github</a> exists, why not share it with the world?).<br />
So my first example in the new public repository is this: how to copy a file (maybe binary) from a URL to a local path. The code is pretty simple:</p>
<pre class="brush: java; title: ; notranslate">
/*******************************************************************************
 * Copyright (c) 2012 Arieh 'Vainolo' Bibliowicz
 * You can use this code for educational purposes. For any other uses
 * please contact me: vainolo@gmail.com
 *******************************************************************************/
package com.vainolo.examples.net;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.net.URL;
import java.net.URLConnection;

public class NetworkFileCopier {
	public static File copyFileFromWeb(String address, String filePath) throws Exception {
		byte[] buffer = new byte[1024];
		int bytesRead;

		URL url = new URL(address);
		BufferedInputStream inputStream = null;
		BufferedOutputStream outputStream = null;
		URLConnection connection = url.openConnection();
		// If you need to use a proxy for your connection, the URL class has another openConnection method.
		// For example, to connect to my local SOCKS proxy I can use:
		// url.openConnection(new Proxy(Proxy.Type.SOCKS, newInetSocketAddress(&quot;localhost&quot;, 5555)));
		inputStream = new BufferedInputStream(connection.getInputStream());
		File f = new File(filePath);
		outputStream = new BufferedOutputStream(new FileOutputStream(f));
		while ((bytesRead = inputStream.read(buffer)) != -1) {
			outputStream.write(buffer, 0, bytesRead);
		}
		inputStream.close();
		outputStream.close();
		return f;
	}
}
</pre>
<p>The code is available on the <a href="https://github.com/vainolo/Vainosamples">Vainosamples repository</a>. Oh, and if you have a better implementation, please do tell me!</p>
<p>Related posts:</p><ol>
<li><a href='http://www.vainolo.com/2011/02/14/learning-jung-java-universal-networkgraph-framework/' rel='bookmark' title='Learning JUNG &#8211; Java Universal Network/Graph Framework'>Learning JUNG &#8211; Java Universal Network/Graph Framework</a></li>
<li><a href='http://www.vainolo.com/2011/04/10/jgraphx-another-graph-framework/' rel='bookmark' title='JGraph &#8211; Another Java Graph Framework'>JGraph &#8211; Another Java Graph Framework</a></li>
<li><a href='http://www.vainolo.com/2011/06/22/creating-a-gef-editor-%e2%80%93-part-5-loading-the-model-from-an-emf-file/' rel='bookmark' title='Creating a GEF Editor – Part 5: Loading the Model from an EMF File'>Creating a GEF Editor – Part 5: Loading the Model from an EMF File</a></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/52R3mkjqsJ03ZYgHLMKelxebitI/0/da"><img src="http://feedads.g.doubleclick.net/~a/52R3mkjqsJ03ZYgHLMKelxebitI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/52R3mkjqsJ03ZYgHLMKelxebitI/1/da"><img src="http://feedads.g.doubleclick.net/~a/52R3mkjqsJ03ZYgHLMKelxebitI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/vainolo/entries/~4/Pz_x1-TdK14" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.vainolo.com/2012/05/07/java-examples-repository-first-example-copy-a-file-from-a-url-to-a-local-path/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.vainolo.com/2012/05/07/java-examples-repository-first-example-copy-a-file-from-a-url-to-a-local-path/</feedburner:origLink></item>
	</channel>
</rss>

