可以从其中读入一个字节序列的对象称为:输入流
可以从其中写入一个字节序列的对象称为:输出流
字节的来源以及目的地可以是文件也可以是网络连接或者内存块
抽象类inputstream和outputstream是面向字节的输入\输出类
而从reader和writer抽象类继承出来的是面向双字节的unicode字符;
Inputstream基本方法:
Abstract void Read()读取一个字节并返回,遇到结尾是输出-1;
Int avialable()查看流中还可用的字节数
Void close()关闭当前流
Outputstream基本方法:
Abstract void write()写一个字节到流对象中
Void close()关闭流,关闭的同时会将流中的内容送出;
Void flush()输出并清空流
Read和write在执行的时候是阻塞的;
PushBackStream的用法:
package org.xzh.in; import java.io.FileInputStream; import java.io.IOException; import java.io.PushbackInputStream; publicclass in { publicstaticvoid main(String[] args){ String fileName="aa.txt"; int c=0; int cc=0; try{ PushbackInputStream s=new PushbackInputStream(new FileInputStream(fileName)); System.out.println(s); while((c=s.read())!=-1){ if(c=='a'){ if((cc=s.read())== 's'){ System.out.println("daiti"); }else{ s.unread(cc); System.out.println('a'); } }else{ System.out.println((char)c); } s.close(); }catch(IOException e){ e.printStackTrace(); } } } |
这个类用于多字符匹配用;
如果要以文本格式输入数据,使用的是SCANNER,下面是实例程序:
Scanner s = new Scanner(System.in); //receive string String str = s.next(); //receive integer Integer i = s.nextInt(); //receive double Double d = s.nextDouble(); System.out.println(str+i+d); |
Java中split的用法:
关于字符集的学习:
获取一个字符集:Charset cset=Charset.forName(“ISO-8859-1”);
获取某个字符集的别名:
获取可用的字符集:
Unicode字节序列与其他字符集的转换:
转换的顺序是:字符—字节缓冲序列—字节
解码的顺序:字节—字节缓冲学列—字符序列---字符串;
随机读取文件:
RandonAccessFile in=new RandomAccessFile(”ee.txt”.”r”);
getFilePointer得到的是当前文件指针的位置
seek(long n);定位到指定的位置