一、常用的实用类String类
1、String类在java.lang包中,是Java专门提供用来处理字符串的类,由于java.lang包中的类是默认被引入的,因此程序可以直接使用String类。
String类用来创建一个字符串变量,字符串变量是对象。
2、构造字符串对象
(1)、常量对象:字符串常量对象是用双引号括起来的字符序列,例如:"你好"、"12.97"、"boy"等。
(2)、字符串对象:
声明:String s;
创建字符串对象:s = new String("we are students");
或者用一个已创建的字符串创建另一个字符串,例如: String tom = new String(s);
String 类常用构造方法: String (char a[]); String (char a[],int startIndex,int count);
(3)、引用字符串常量对象
String s1,s2;
s1 = "How are you"; s2 = "How are you";
这样,s1,s2具有相同的引用,因此具有相同的实体。
3、常用方法
(1)、public int length(); //获取一个字符串的长度
(2)、public boolean equals(String s);//比较当前字符串对象的实体是否跟s指定的字符串实体相同。
(3)、public boolean startWith(String s)
public boolean endsWith(String s); 判断当前字符串对象的前缀(后缀)是否是参数s指定的字符串
(4)、public boolean contains(String s); 判断当前字符串对象是否含有字符串s
(5)、public int indexOf(String s); 从当前字符串的头开始检索字符串s,并返回首次出现s的位置。
public indexOf(String s, int startpoint); 从当前字符串startpoing位置开始,检索s首次出现的位置
public lastIndexOf(String s); 从当前字符串的头开始,检测s最后出现的位置。
(6)、public String substring(int startpoint);获取一个当前字符串的子串
相关方法: public substring(int start,int end);
(7)、public String trim (); //得到一个s去掉前后空格后的字符串对象。
4、字符串与基本数据类型的转换
(1)、java.lang 包中的Integer类调用其类方法public static int parseInt(String s);可以将由"数字"字符组成的字符串如"12345",转换成int类型数字。
(2)、类似的,使用java.lang包中的Byte、Short、Long、Float、Double类调用相应的类方法可以将由"数字"字符组成的字符串,转化为相应的基本数据类型。
(3)、可以使用String类的类方法public static String valueOf(byte n)等将形如123、123.456等数值转换为字符串。
5、字符串与字符、字节数组
(1)、字符串与字符数组
String类的构造方法
String(char [])和String(char [],int offset,int length)
分别用字符数组中的全部字符和部分字符创建字符串对象
将字符串中的全部字符存放在一个字符数组中的方法
public char[] toCharArray();
(2)、字符串与字节数组
String(byte[])用指定的字节数组构造一个字符串对象。
String(byte[],int offset,int length);用指定的字节数组的一部分,即从数组起始地址offset开始取length个字节构造一个字符串对象
public byte[] getBytes() 方法使用平台默认的字符编码,将当前字符串转化为一个字节数组
public byte[] getBytes(String charsetName) 使用参数指定的字符编码,将当前字符串转化为一个字节数组。
二、常用实用类StringBuffer类
1、String字符串不能修改、删除或替换字符串中的某个字符,即String 对象一旦创建,那么实体是不可以再发生变化的,例如:
String s = new String("我喜欢散步"); //之后"我喜欢散步"对应的内存地址里的内容不会发生改变
虽然可以 s = "我喜欢打球"; 的操作,但是只是改变了s指向的内存空间,原来的内存里的东西没有发生改变。
2、StringBuffer类创建可修改的字符串序列,也就是说,该类对象的实体的内存空间可以改变大小。
3、StringBuffer类构造方法:
有三个构造方法:
(1)、 StringBuffer(); 创建一个StringBuffer对象,分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于16时,实体的容量自动增加。
(2)、StringBuffer(int size); 分配给该对象实体的初始容量大小是size指定的字符个数,当该对象的实体存放的字符序列的长度大于size个字符时,实体的容量自动增加。
(3)、StringBuffer(String s); 分配给该对象的实体的初始容量为参数字符串s的长度额外再加16个字符,当该对象的实体存放的字符序列长度大于这些时,实体的容量自动增加。
常用方法:
(1)、StringBuffer append(String s)将一个字符串对象追加到当前StringBuffer对象中
StringBuffer append(int n)将int类型数据转化为字符串对象之后再追加到当前StringBuffer对象中,类似的还有StringBuffer append(long n)等
StrinBuffer append(Object o)将Object对象的字符串追加到当前StringBuffer对象中
(2)、public char charAt(int n); 得到参数n指定的位置上的单个字符
public void setChar(int n,char ch);将StringBuffer对象实体中的字符串位置n处的字符用参数ch替换。
(3)、StringBuffer insert(int index,String str);将参数str指定的字符串插入到参数index指定的位置。
(4)、public StringBuffer reverse() 将该对象实体中的字符反转
(5)、StringBuffer delete(int startIndex,int endIndex);从当前StringBuffer对象实体中的字符串中删除一个字符串
deleteCharAt(int index)删除当前StringBuffer对象实体的字符串中index位置处的一个字符
(6)、StringBuffer replace(int startIndex,int endIndex ,String str);将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换(前闭后开)。
三、IO之File类
1、输入流和输出流
输入、输出流提供一条通道程序,可以使用这条通道读取源中的数据或者把数据传送到目的地。
把输入流的指向称作源,程序从指向源的输入流中读取源中的数据。
而输出流的指向是数据要去的一个目的地,程序通过向输出流中写入数据把数据传送到目的地。
2、File类 File既可以当作一个文件,又可以当作一个目录
File对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。
创建一个File对象的构造方法有三个:
File(String filename);
File(String directoryPath,String filename);
File(File f,String filename);
3、文件的属性:
public String getName()获取文件的名字
public boolean canRead() 判断文件是否可读
public boolean canWrite()判断文件是否可写
public boolean exits()判断文件是否存在
public long length()获取文件的长度(字节数)
public String getAbsolutePath()获取文件的绝对路径
4、文件的创建和删除
当使用File类创建一个文件对象后,例如 File file = new File("c:\\myletter","letter.txt");
(1)、如果c:\\myletter 目录中没有名字为letter.txt文件,文件对象file调用方法public boolean createNewFile()可以在c:\\myletter目录中创建一个letter.txt文件
(2)、文件对象调用方法 public boolean delete()可以删除当前文件,例如:file.delete();
5、目录
(1)、创建目录 public boolean mkdir()
(2)、列出目录中的文件
public String[] list() 用字符串形式返回目录下的全部文件
public File [] listFiles() 用file对象形式返回目录下的全部文件
public String[] list(FilenameFilter obj)用字符串形式返回目录下制定类型的所有文件
public File[] listFiles(FilenameFilter obj)用File对象形式返回目录下的指定类型的所有文件
(3)、上述两方法的参数FilenameFilter 是一个接口,该接口有一个方法 public boolean accept(File dir,String name);
四、IO之字节流和字符流
1、java.io包提供了大量的流类,Java把InputStream抽象类的子类创建的流对象称作字节输入流,OutputStream抽象类的子类创建的流对象称为字节输出流,Java把Reader抽象类的子类
创建的流对象称为字符输入流,Writer抽象类的子类创建的流对象称为字符输出流。
针对不同的源或目的地,java.io包为程序提供了相应的输入流或输出流,这些输入、输出流绝大部分都是InputStream、OutputStream、Reader、Writer的子类。
2、InputStream类与OutputStream类
InputStream类提供的read方法以字节为单位顺序的读取源中的数据,只要不关闭流,每次调用read方法就顺序地读取源中的其余内容,直到源的末尾或输入流被关闭。
InputStream类中如下常用方法
int read()
int read(byte b[])
int read(byte b[],int off,int len)
void close()
long skip(long numBytes)
OutputStream流以字节为单位顺序地写进文件,只要不关闭流,每次调用write方法就顺序地向目的地写入内容,知道流被关闭
InputStream类中有如下常用的方法
void write(int n)
void write(int b[])
void write(byte b[],int off,int len)
void close()
3、Reader类与Writer类
Reader 类提供的方法read以字符为单位顺序地读取源中的数据
int read()
int read(byte b[])
int read(byte b[],int off,int len)
void close()
long skip(long numBytes)
Writer流以字符为单位顺序地写文件,每次调用write方法就顺序地向目的地写入内容,知道流被关闭
void write(int n); 写一个字符
void write(char b[])
void write(char b[],int off,int len)
void close()
4、关闭流
通过调用close方法,可以保证操作系统把流缓冲区的内容写入到他的目的地,即关闭输出流可以把该流所用的缓冲区的内容冲洗掉。
五、IO之文件字节流
1、InputStream专门提供了读写文件的子类:FileInputStream和FileOutputStream类,如果程序对文件的操作比较简单,可以使用FileInputStream和FileOutputStream类创建的流
对文件进行读写操作。
2、FileInputStream类创建的对象被称作为字节输入流
构造方法:
FileInputStream(String name);
FileInputStream(File file);
读取一个hello.txt的文件
try { FileInputStream in = new FileInputStream("hello.txt");}
catch (IOException e){Sysotem.out.println("read error");}
read 方法以字节为单位读取文件
int read() //读到文件尾部返回-1
int read(byte b[])
int read(byte b[],int off,int len)
3、FileOutputStream类创建字节输出流
构造方法:
FileOutputStream(String name)
FileOutputStream(File file)
以字节为单位写文件
FileOutputStream流的目的地是文件,所以文件输出流调用write(byte n[])把字节写入文件
六、IO之文件字符流
1、FileReader和FileWriter用来创建文件字符输入、输出流,构造方法:
FileReader(String filename);
FileReader(File filename);
FileWriter(String filename);
FileWriter(File filename);
2、字符输入流和输出流的read()和write()方法以字符为基本单位处理数据
七、IO之缓冲流
1、BufferedReader和BufferedWriter类创建的对象称作缓冲输入、输出流,二者的源和目的地必须是字符输入流和字符输出流,构造方法:
BufferedReader(FileReader in);
BufferedWriter(FileWriter out);
2、BufferedReader和BufferedWriter类读写文件的方法:
readLine() BufferedReader流读取文本行
write(String s,int off,int len);BufferedWriter流把字符串s写到文本中
newLine();BufferedWriter向文件写入一个回车符。