`
pipe
  • 浏览: 205249 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 读取 rss(gzip格式)

    博客分类:
  • j2se
阅读更多
用java自带的gzip解压就可以了!这种只限于gzip格式
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.zip.GZIPInputStream;
public class ConnectTester {

	public static void requestInfo() {
		URL url = null;
		try {
			url = new URL("http://blog.sina.com.cn/rss/xujinglei.xml");
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();		
			 GZIPInputStream gzin=new GZIPInputStream(conn.getInputStream()); 
			 FileOutputStream fout=new FileOutputStream("E:\\test.xml"); 
			 byte[] buf=new byte[1024];
			   int num;
			   while ((num=gzin.read(buf,0,buf.length))!=-1) { 
			    fout.write(buf,0,num); 
			   }
			   gzin.close();
			   fout.close();  

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void main(String args[]) {
		requestInfo();
	}

普通的xml格式rss可以这样做
public static void requestInfo() {

		URL url;
		try {
			url = new URL("http://www.people.com.cn/rss/politics.xml");

			URLConnection conn;
			conn = url.openConnection();

			BufferedReader bufferedreader = new BufferedReader(
					new InputStreamReader(conn.getInputStream()));
			String line = null;
			while ((line = bufferedreader.readLine()) != null) {
				System.out.println(line);
			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	public static void main(String args[]) {
		requestInfo();
	}
分享到:
评论
3 楼 ccbobocat 2008-11-24  
我在运行第一个程序的时候,出现如下的错误。
请问该如何解决呢
---------- java ----------
java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:132)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
at ConnectTester.requestInfo(ConnectTester.java:12)
at ConnectTester.main(ConnectTester.java:27)
2 楼 zp0123 2008-07-11  
恩!  是的!
1 楼 ylangin 2008-07-09  
两种情况可以合并统一处理(另外使用了rome的库解析feed):

import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;

///...
///...
	public static void requestInfo(URL url) throws IllegalArgumentException,
			FeedException {

		try {
			SyndFeedInput input = new SyndFeedInput();
			SyndFeed feed = null;

			URLConnection conn;
			conn = url.openConnection();
			String content_encoding = conn.getHeaderField("Content-Encoding");
			if (content_encoding != null && content_encoding.contains("gzip")) {
				System.out.println("conent encoding is gzip");
				GZIPInputStream gzin = new GZIPInputStream(conn
						.getInputStream());
				feed = input.build(new XmlReader(gzin));
			} else {
				feed = input.build(new XmlReader(conn.getInputStream()));
			}

			System.out.println("feed size:" + feed.getEntries().size());

		} catch (IOException e) {
			e.printStackTrace();
		}

	}

相关推荐

Global site tag (gtag.js) - Google Analytics