java之String工具類和File類


Stringjava

  1. string中的經常使用方法正則表達式

  • matches(String regex)數組

  • replace(char oldChar,char newChar)安全

  • replaceAll(String regex,String replace)dom

  • split(String regex)ui

  • substring(int beginIndex,int endIndex)spa

  • length().net

  • trim()線程

  • startsWith(String prefix)指針

  • endsWith(String suffix)

  • indexOf(String str)

  • charAt(int i)

 

2.正則表達式

 


^

行的開頭

[abc]

ab c(簡單類)

$

行的結尾

\d

數字:[0-9]

\

轉義

\D

非數字:[^0-9]

()

結合

\w

單詞字符:[a-zA-Z_0-9]

|

或者

\W

非單詞字符:[^\w]

?

0-1

{n}

n

*

0-n

{n,}

>=n

+

1-n

{n,m}

nm(>=n <=m)


應用舉例:

String mobiNum="^1[0-9]{10}$";

String email="^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.com|\\.net)$";


3.String類和對象池

獲得String對象的兩種方法:

String str1 = "hello";

String str2 = new String("hello");

第一種方法在字符串池中拿對象,第二種方法直接生成新的對象。

舉例說明:

String str1 = "hello";

String str2 = "hello";

System.out.println(str1 == str2);//true

結果爲true,說明str1str2指向同一個對象,由於它們都是在對象池中拿對象。

String str3 = "hello";

String str4 = new String("hello");

System.out.println(str3 == str4);//false

結果爲false,由於在任何狀況下,只要去new一個String對象那都是建立了新的對象。


4.StringStringBufferStringBuilder的區別:

String是不能夠變的字符串
StringBuffer
線程安全的可變字符序列。

StringBuilder一個可變的字符序列(線程不安全),效率高




Object

java中的一個特殊類,它是java體系中全部類的父類(直接父類或者間接父類)。

  1. toString()方法

當咱們直接用打印語句(System.out.print())輸出對象時,是隱式的調用了對象的toString()方法的返回。能夠經過子類定義toString()來覆蓋父類的toString(),以取得咱們想獲得的表現形式,即當咱們想利用自定義的方式描述對象時,應該覆蓋toString()

toString()方法在Object中的十六進制顯示方式爲包名.類名@hashCode



  1. equals()方法

==」判斷的是變量的值是否相等,equals()方法判斷的是對象的值是否相等。用戶若是想比較自定義類的對象是否相等,就必須在該類中覆蓋equals()方法。

  • 基本類型比較時用==

  • 對象與null比較時用==

  • 對象與對象比較時,使用equals()




File

1File 既能表明文件,也能表明目錄。在JAVA 中文件和目錄都屬於這個類中,並且區分不是很是的明顯。

注意:建立一個文件對象和建立一個文件在OS中是兩個不一樣的概念。前者是在虛擬機中建立了一個文件,但卻並無將它真正地建立到OS的文件系統中,隨着虛擬機的關閉,這個建立的對象也就消失了。而建立一個文件纔是在系統中真正地創建一個文件。

例如:

File f=new File(「11.txt」);//建立一個名爲11.txt的文件對象

f.CreateNewFile(); //真正地建立文件


2File 類的經常使用方法

boolean createNewFile()建立文件

boolean mkdir()建立目錄

boolean mkdirs()建立多個目錄

boolean delete()刪除文件

String[] list():返回當前File對象下全部文件和目錄名(相對路徑)

File[] listFiles():返回當前File對象全部對象,能夠用getName()來訪問到文件名。

String[] list(FileFilter filter)返回一個字符串數組,這些字符串指定此抽象路徑名錶示的目錄中知足指定過濾器的文件和目錄。

File[] listFiles(FileFilter filter)返回此抽象路徑名的絕對路徑名形式。

isDirectory()isFile()來判斷到底是目錄仍是文件。

String getAbsolutePath()返回此抽象路徑名的絕對路徑名字符串。

StringgetParent()返回此抽象路徑名父目錄的路徑名字符串;若是此路徑名沒有指定父目錄,則返回 null

File getParentFile()返回此抽象路徑名父目錄的抽象路徑名;若是此路徑名沒有指定父目錄,則返回 null

String getPath()將此抽象路徑名轉換爲一個路徑名字符串。

boolean exists()判斷文件是否存在


十三.RandomAccessFile

1可經過RandomAccessFile 對象完成對文件的讀寫操做

2在產生一個對象時,可指明要打開的文件的性質:

r,只讀;w,只寫;rw 可讀寫

3此類的實例支持對隨機存取文件的讀取和寫入。隨機存取文件的行爲相似存儲在文件系統中的一個大型字節數組。存在指向該隱含數組的光標或索引,稱爲文件指針。

寫入隱含數組的當前末尾以後的輸出操做致使該數組擴展。該文件指針能夠經過getFilePointer方法讀取,並經過seek方法設置。


4經常使用的方法:

void close()關閉此隨機存取文件流並釋放與該流關聯的全部系統資源。

int read(byte[] b)將最多b.length個數據字節今後文件讀入 byte 數組。

int read(byte[] b, int off, int len)將最多len個數據字節今後文件讀入byte 數組。

void write(byte[] b)b.length個字節從指定byte數組寫入到此文件,並從當前文件指針開始。
voidwrite(byte[] b, int off, int len)
len個字節從指定byte數組寫入到此文件,並從偏移量 off處開始。

void seek(long pos)設置文件指針偏移量,在該位置發生下一個讀取或寫入操做。

int skipBytes(int n)嘗試跳過輸入的n個字節以丟棄跳過的字節。

long getFilePointer() 返回此文件中的當前偏移量。

例如寫內容:

raf.seek(raf.getFilePointer());//指針指向文件內容的開始位置

//raf.seek(raf.length()); //指針指向文件內容的末尾位置

raf.write("你好嗎".getBytes());

此外,還有一系列的read方法和write方法,好比讀/寫整形、浮點型、字符串等

相關文章
相關標籤/搜索