本週,我學習了書本上第5、六兩章的內容,如下是我整理的主要知識。java
類的兩個重要成員:成員變量和方法。除此以外還能夠有一種成員:內部類!git
內部類:在一個類中定義另外一個類正則表達式
外嵌類:包含內部類的類數組
內部類和外嵌類的關係:外嵌類的成員變量在內部類仍然有效,內部類中的方法也能夠調用外嵌類中的方法。app
內部類中的類體不能夠聲明類變量和類方法。外嵌類的類體能夠用內部類聲明對象dom
內部類僅供它的外嵌類使用編輯器
Java編輯器生成的內部類的字節碼名字格式外嵌類名$內部類名
學習
內部類能夠被修飾爲static內部類,可是,static內部類不能操做外嵌類中的實例成員變量,非內部類不能夠是static類設計
沒有顯示的定義一個類的子類,而又想用子類建立一個對象,能夠直接使用一個類的子類的類體建立一個子類對象3d
不能用匿名類聲明對象,可是卻能夠直接用匿名類建立一個對象。匿名類對象的引用能夠傳遞給一個匹配的參數。
匿名類的特色:
沒有顯示的定義一個實現接口類,而又想實現該接口的類建立一個對象。
異常:程序運行時可能出現的一些錯誤
try { 包含可能發生異常的語句 } catch(ExceptionSubClass1 e){ ... } catch(ExceptionSubClass2 e){ ... }
一個方法在申明是可使用throws關鍵字聲明要產生的若干個異常,並在該方法的方法體中具體給出產生異常的操做,即用相應的異常類建立對象。
例assert booleanExpression
,assert booleanExpression:messageException
啓用或關閉斷言語句:java -ea mainClass
public String getName() | 獲取文件的名字 |
---|---|
public boolean canRead() | 判斷文件是否可讀 |
public boolean canWrite() | 判斷文件是否可被寫入 |
public boolean exists() | 判斷文件是否存在 |
public long length() | 獲取文件的長度 |
public String getAbsolutePath() | 獲取文件的絕對路徑 |
public String getParent() | 獲取文件的父目錄 |
public boolean isFile() | 判斷文件是不是一個普通文件 |
public boolean isDirectory() | 判斷文件是不是一個目錄 |
public boolean isHidden() | 判斷文件是不是隱藏文件 |
public long lastModified() | 獲取文件最後修改的時間 |
建立目錄:public boolean mkdir()
列出目錄中的文件:
public String[] list() | 用字符串形式返回目錄中的所有文件 |
---|---|
public File[] listFiles() | 用File對象形式返回目錄中的所有文件 |
public String[] list(FilenameFilter filter) | 用字符串返回由包含在目錄中指定類型的全部文件 |
public File[] listFiles(FileFilter filter) | 用File對象形式返回由包含在目錄中指定類型的全部文件 |
建立:例:File file =new file("C://myletter","letter.txt")
刪除:file.delete()
使用Runtime類聲明一個對象:Runtime ec
使用該類的getRuntime()靜態方法建立這個對象:ec = Runtime.getRuntime
使用輸入流一般包括4個基本步驟:
FileInputStream(String name); FileInputStream(File file); File f=new File("D:/2000/E.java"); FileInputStream input=new FileInputStream(f);
void write(int n) | 輸出流調用該方法向目的地寫數據 |
---|---|
void write(byte b[]) | 輸出流調用該方法向目的地寫入一個字節數組 |
void write(byte b[],int off,int len) | 給定字節數組中起始於偏移量off處取len個字節寫到目的地 |
void close() | 關閉輸出流 |
以char爲單位,構造方法:
FileReader(String filename): FileReader(File filename);
FileWrite(String filename):FileWrite(File filename);
FileWrite(String filename,boolean append);
FileWrite(File filename,boolean append);
BufferedReader,BufferedWrite類緩衝輸入、輸出流能夠加強讀寫文件的能力
BufferedReader,BufferedWrite類,兩者的源和目的地必須是字符輸入流和字符輸出流
BufferedReader,BufferedWrite類的構造方法:
BufferedReader(Reader in): Reader in=new FileReader("a.txt"); BufferedReader inTwo=new BufferedReader(in); BufferedWrite (Wirte out); Write out=new FileWrite("b.txt"); BufferedWrite outTwo=new BufferedWrite(out); outTwo("你好a",0,3);
RandomAccessFile類建立的流叫作隨機流,不是InputStream類和OutputStream類的子類
指向能夠既能夠做爲流的源,也能夠做爲流的目的地
構造方法:RandomAccessFile(String name,String mode)
RandomAccessFile(File file,String mode)
字節數組輸入流ByteArrayInputStream,字節數組輸出流ByteArrayoutputStream
構造方法:
ByteArrayInputStream:
ByteArrayInputStream(byte[] buf); ByteArrayInputStream(byte[] buf,int offset,int length);
ByteArrayoutputStream:
ByteArrayoutputStream(); ByteArrayoutputStream(int size);
CharArrayReader,CharArrayWrite
DataInputStream和DataoutputStream類建立的對象稱爲數據輸入流和數據輸出流
構造方法:DataInputStream:DataInputStream(InputStream in)
DataOutputStream:DataOutputStream(OutputStream out)
ObjectInputStream、ObjectoutputStream分別是InputStream和outputStream類的子類,建立的對象稱爲對象輸入流和對象輸出流。
構造方法:ObjectInputStream:ObjectInputStream(InputStream in)
ObjectOutputStream:ObjectOutputStream(OutputStream out)
在使用對象流寫入或讀入對象時,要保證對象是序列化的。
對象的複製品,且複製品的實體的變化不會引發原對象實體發生變化,這樣的複製品稱爲原對象的一個克隆對象,簡稱克隆。
對象輸入流經過對象的序列化信息來獲得當前對象的一個克隆
建立Scanner的對象,並指向要解析的文件:
File file=new File("hello.java"); Scanner sc=new Scanner(file);
那麼sc將空格做爲分割標記、調用next()方法依次返回file中的單詞,若是file最後一個單詞已被next()方法返回,sc調回hasNext()將返回false,不然返回true
File file = new File(「hello.java");
Scanner sc=new Scanner(file);
sc useDelimiter(正則表達式);
那麼sc將正則表達式做爲分隔標記
文件對話框是一個選擇文件的界面。javax.swing包中的JFileChooser能夠建立文件對話框
javax.swing包中的ProgressMonitorInputStream輸入流類,能夠看見文件的讀取進度
問題1:
問題1解決方案:括號內數據間隔符號使用錯誤
問題2:
問題2解決方案:句末的分號使用了中文字符
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 37/37 | 1/1 | 10/10 | |
第二週 | 399/436 | 1/2 | 12/22 | |
第三週 | 764/1163 | 1/3 | 18/40 | |
第四周 | 687/1813 | 1/4 | 12/52 | |
第五週 | 1127/2916 | 1/5 | 10/62 |