1.流:不同类型的输入、输出抽象为流。
字节流:输入(InputStream)输出(OutputStream)
字符流:输入(Reader) 输出(Writer)
InputStream类:read()方法
OutputStream类:write()方法,flush()方法,close()方法
Reader类:read()方法
Writer类:write()方法,flush()方法,close()方法
2.节点流和处理流
节点流:一个特定的地方(节点)读写数据,直接与节点(如文件)相连
例:文件流、内存流
处理流:已存在的流的连接和封装,过滤流,对节点流或其它处理流进一步处理
例:缓冲处理流
3.流的包装
处理流的构造方法:带一个其它的流对象作参数
BufferedReader in =
new BufferedReader(new FileReader(file));
BufferedReader in2 =
new BufferedReader(
new InputStreamReader(
new FileInputStream(file),"utf-8"));
s = in2.readLine();
4.标准输入和标准输出
System.in(InputStream类型)
System.out(PrintStream类型)
System.err(PrintStream类型)
标准输入读取数据
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
br.readLine();
5.常见内容读写
(1)二进制流的读写
(2)字符的读写
(3)对象的读写
(4)网络流
6.文件类
Java中,目录(directory, 文件夹)也当作文件处理
File类
(1)目录,文件名操作
(2)测试操作
(3)常规文件信息操作
(4)目录操作
RandomAccessFile类,可以实现对文件的随机读写操作
构造方法
定位方法
读写方法
7.正则表达式
写法: 字符{数量}位置
Pattern类
例:
import java.util.regex.*
public class Test
{
public static void main(String[] args)
{
Pattern p = Pattern.compile("[,\\s]+");
String[] result = p.split("one,two, three four , five ");
for(int i=0;i<result.length;i++)
{
System.out.println(result[i]);
}
}
}
匹配,例:
import java.util.regex.*;
public class Test()
{
public static void main(String[] args)
throws Exception
{
String pattern = "^[^@]+@[\\w]+(\\.[\\w]+)*$";
String email = "netease@163.com";
boolean flag = Pattern.matches(pattern, email);
System.out.println( ok );
}
}
Matcher 类
find方法
appendReplacement
import java.util.regex.*;
public class Test{
public static void main(String[] args)
throws Exception
{
Pattern p = Pattern.compile("cat");
Matcher matcher = p.matcher("one cat, two cats in the yard");
StringBuffer sb = new StringBuffer();
while(matcher.find())
{
matcher.appendReplacement(sb, "big $0");
}
matcher.appendTail(sb);
System.out.println(sb.toString());
}
}