?? loadrss.java
字號:
package book.rssreader;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
public class LoadRSS {
protected String cacheDirName = "";// 保存緩存的目錄名
protected long cacheTime = 0;// 緩存時間
protected boolean bCache = true;// 是否要在緩存中讀取數據
String fileName = "";// 保存在緩存中的文件名
public String getRSS(String url) {
// 首先設置文件名
if (url == null || url.equals(""))
return "";
else
fileName = url.substring(url.lastIndexOf("/") + 1);
StringBuffer bf = new StringBuffer();
if (cacheDirName == null || cacheDirName.equals(""))// 如果沒有設置緩存目錄,則不需要在緩存中讀
bCache = false;
if (bCache) {// 如果在緩存中度數據
File cacheFile = new File("C:\\" + cacheDirName, fileName);// 查找C盤下給文件
if (!cacheFile.exists()) {// 如果該文件不存在,則新建目錄
bCache = false;
try {
cacheFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
} else {
long interval = new Date().getTime() - cacheFile.lastModified();// 比較該文件與緩存的時間
if (interval >= cacheTime)// 如果大于或等于緩存時間,則不在緩存中讀取
bCache = false;
}
}
if (bCache) {// 如果從緩存中讀取
bf.append(readFromCache(url));
} else {// 如果不從緩存中讀取
bf.append(readNew(url));
}
return bf.toString();
}
// 該方法讀出文件的內容
public String readFromCache(String url) {
StringBuffer buffer = new StringBuffer();
File cacheFile = new File("C:\\" + cacheDirName, fileName);
try {
BufferedReader in = new BufferedReader(new FileReader(cacheFile));
String line;
while ((line = in.readLine()) != null) {
buffer.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
}
public String readNew(String url) {
StringBuffer buffer = new StringBuffer();
try {
URL u = new URL(url);// 定義URL對象
BufferedReader in = new BufferedReader(new InputStreamReader(u
.openStream()));// 獲得URL對象的所輸出的數據
String inputLine;
while ((inputLine = in.readLine()) != null) {
buffer.append(inputLine);
}
in.close();
writeNew(url, buffer.toString());// 些到文件中
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return buffer.toString();
}
public void writeNew(String url, String content) {
File cacheFile = new File("C:\\" + cacheDirName, fileName);
try {
if (!cacheFile.exists())
cacheFile.createNewFile();
FileOutputStream out = new FileOutputStream(cacheFile);
byte[] b = content.getBytes();
out.write(b);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean isBCache() {
return bCache;
}
public void setBCache(boolean cache) {
bCache = cache;
}
public String getCacheDirName() {
return cacheDirName;
}
public void setCacheDirName(String cacheDirName) {
this.cacheDirName = cacheDirName;
}
public long getCacheTime() {
return cacheTime;
}
public void setCacheTime(long cacheTime) {
this.cacheTime = cacheTime;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -