1.import java.io.*;
java.io.*不是一個文件,而是一組類。它是在java.io包里的所有類,*是通配符,比如a*.txt代表的就是以a開頭的所有txt文件,“?”是單個詞的通配符,比如a?.txt代表的就是以a開頭而且名字只有兩個字的txt文件
import的作用是:在你寫一個類的時候。里面用到了其他的類,而用到的這個類和你現在寫的這個類不是同一個包里,就需要導入那個類的全名
2.類似於C語言中int main() 的作用
public class main { public static void main(String[] args) {
3.String
// 定義即將訪問的鏈接 String url = "http://www.baidu.com"; // 定義一個字符串用來存儲網頁內容 String result = "";
詳見http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html
4.Bufferedreader
// 定義一個緩沖字符輸入流 BufferedReader in = null;
BufferedReader類用於緩沖讀取字符,將字節流封裝成BufferedReader對象,然后用readLine()逐行讀入字符流,直到遇到換行符為止(相當於反復調用Reader類對象的read()方法讀入多個字符)
詳見http://blog.csdn.net/caixiexin/article/details/6719482
BufferedReader 由Reader類擴展而來,提供通用的緩沖方式文本讀取,而且提供了很實用的readLine,讀取一個文本行,從字符輸入流中讀取文本,緩沖各個字符,從而提供字符、數組和行的高效讀取。
一般用法:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt"))); String data = null; while((data = br.readLine())!=null) { System.out.println(data); }
5.try{}catch(Excpetion e){}finally{}
用來捕捉異常
catch (Exception e) { System.out.println("發送GET請求出現異常!" + e); e.printStackTrace(); // 將錯誤信息打印出來 }
// 使用finally來關閉輸入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } }
在java中.close 是關閉的意思。比如session.close(); 意思就是關閉session 同時釋放內存。
還有常用的就是和數據庫的鏈接 connection
在使用完畢之后,也就是一個功能代碼的結尾 ,同時會寫connection.close();釋放內存
6.new
// 將string轉成url對象 URL realUrl = new URL(url);
比如說現在有兩個類,T1和T2
T1 a=new T1();
T2 b=new T1();
就是new出兩個T1的實例;你可以把T1看成是一個模子,new T1();就是按照這個模子做一個東西出來,new幾次就做幾個,所以做出來的東西並不是一個東西,但是它們很像。
T2 b=new T1();如果T1繼承自T2的話那么程序就正確,否則就是錯誤代碼。如果正確的話,T2 b就是聲明要創建的b是T2類型,而new T1();就是創建了一個T1類型賦值給b,因為T1是T2的子類所以是允許的,如果T1和T2里有同名同參同返回方法那么調用的是T1里的。
7.Connection
// 初始化一個鏈接到那個url的連接 URLConnection connection = realUrl.openConnection();
public URLConnection openConnection()
throws IOException
返回一個 URLConnection 對象,它表示到 URL 所引用的遠程對象的連接。
每次調用此 URL 的協議處理程序的 openConnection 方法都打開一個新的連接。
如果 URL 的協議(例如,HTTP 或 JAR)存在屬於以下包或其子包之一的公共、專用 URLConnection 子類:java.lang、java.io、java.util、java.net,返回的連接將為該子類的類型。例如,對於 HTTP,將返回 HttpURLConnection,對於 JAR,將返回 JarURLConnection。
返回:
到該 URL 的 URLConnection。
// 開始實際的連接 connection.connect();
8.初始化 BufferedReader
// 初始化 BufferedReader輸入流來讀取URL的響應 in = new BufferedReader(new InputStreamReader( connection.getInputStream()));
InputStreamReader 類
是字節流通向字符流的橋梁,封裝了InputStream在里頭, 它以較高級的方式,一次讀取一個一個字符,以文本格式輸入 / 輸出,可以指定編碼格式;
一般用法:
InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt")); while((ch = isr.read())!=-1) { System.out.print((char)ch); }
示例如下
public static String getHtmlSource( String url) throws MalformedURLException, IOException { URLConnection uc = new URL(url).openConnection(); uc.setConnectTimeout(10000); uc.setDoOutput(true); InputStream in = new BufferedInputStream(uc.getInputStream()); InputStreamReader rd = new InputStreamReader(in,"gb2312"); int c = 0; StringBuffer temp = new StringBuffer(); while((c = rd.read())!= -1){ temp.append((char)c); } in.close(); return temp.toString(); }
9.抓取數據並存儲
// 用來臨時存儲抓取到的每一行的數據 String line; while ((line = in.readLine()) != null) { //遍歷抓取到的每一行並將其存儲到result里面 result += line; }
10.輸出信息System.out.println
public class Test { public static void main(String[] args) { int x = 5; int y = 2; int a=5,b=4,c=3; System.out.println(x+y+"K"); System.out.println("abc"+a+b+c+3); } } 結果是: 7K abc5433
首先,這個跟println輸出規則沒什么關系
這個是跟運算規則和“+”連接符有關
其次x,y,a,b,c都是int型,也就是可用“+”號計算的類型
最后
第一個輸出x+y+"K"
從左到右先計算x+y,結果為7是int類型,這里的"+"號是計算符號,而后“+”號是當字符串連接符號處理所以最后int的7和string類型的“K”連接后生成新的string,“7K”
第二個輸出“abc”+a+b+c+3
也是從左到右計算,因為“abc”是字符串,而后跟“+”號是當字符串連接符號處理,所以是“abc5433”
其后的“+”號都當成了字符串連接符號
總之,當“+”號前后有字符串出現時,就當做字符串連接符號處理了。
例如:
int a=1;
String s="a";
System.out.println(a+s);
輸出"1a"
System.out.println(s+a);
輸出“a1”
而且這種情況就從左到右,依次看“+”號前后有沒有字符串出現就行了。