nntputils.java

来自「apache推出的net包」· Java 代码 · 共 94 行

JAVA
94
字号
package examples.nntp;import java.io.BufferedReader;import java.io.IOException;import java.io.Reader;import java.util.StringTokenizer;import org.apache.commons.net.io.DotTerminatedMessageReader;import org.apache.commons.net.nntp.Article;import org.apache.commons.net.nntp.NNTPClient;/** *  * Some convenience methods for NNTP example classes. *  * @author Rory Winston <rwinston@checkfree.com> */public class NNTPUtils {	/**	 * Given an {@link NNTPClient} instance, and an integer range of messages, return 	 * an array of {@link Article} instances.	 * @param client 	 * @param lowArticleNumber	 * @param highArticleNumber	 * @return Article[] An array of Article	 * @throws IOException	 */	public  static Article[] getArticleInfo(NNTPClient client, int lowArticleNumber, int highArticleNumber)			throws IOException {			Reader reader = null;			Article[] articles = null;			reader =				(DotTerminatedMessageReader) client.retrieveArticleInfo(					lowArticleNumber,					highArticleNumber);			if (reader != null) {				String theInfo = readerToString(reader);				StringTokenizer st = new StringTokenizer(theInfo, "\n");				// Extract the article information				// Mandatory format (from NNTP RFC 2980) is :				// Subject\tAuthor\tDate\tID\tReference(s)\tByte Count\tLine Count				int count = st.countTokens();				articles = new Article[count];				int index = 0;				while (st.hasMoreTokens()) {					StringTokenizer stt = new StringTokenizer(st.nextToken(), "\t");					Article article = new Article();					article.setArticleNumber(Integer.parseInt(stt.nextToken()));					article.setSubject(stt.nextToken());					article.setFrom(stt.nextToken());					article.setDate(stt.nextToken());					article.setArticleId(stt.nextToken());					article.addHeaderField("References", stt.nextToken());					articles[index++] = article;				}			} else {				return null;			}			return articles;		}				/**	 * Convert a {@link Reader} instance to a String	 * @param reader The Reader instance	 * @return String	 */			public static String readerToString(Reader reader) {		String temp = null;		StringBuffer sb = null;		BufferedReader bufReader = new BufferedReader(reader);		sb = new StringBuffer();		try {			temp = bufReader.readLine();			while (temp != null) {				sb.append(temp);				sb.append("\n");				temp = bufReader.readLine();			}		} catch (IOException e) {			e.printStackTrace();		}		return sb.toString();	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?