-
字符流InputStreamReader:完成byte流解析为char流,按照编码解析
OutputStreamWriter:提供char流到byte流,按照编码处理
字符流操作的是文本文件(文本序列按照某种编码方式utf-8/utf-16be/gbk序列化为byte的存储结果)
字符的处理一次处理一个字符,字符的底层时基本的字节序列
查看全部 -
字节缓冲流BufferedInputStream&BufferedOutputStream
这两个流类为IO提供缓冲区的操作,文件写入或读取都会加上缓冲,这种流模式提高了IO的性能,相比文件输出流更快,比数据输出流更加简单快捷。
查看全部 -
IO流分为输入流、输出流 还有字节流、字符流 1、字节流: (1)InputStream:抽象了应用程序读取数据的方式 (2)OutputStream:抽象了应用程序写 出数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 int b = in.read();读取一个字节无符号填充到int低八位.-1是EOF in.read(byte[] buf) 读取数据填充到字节数组buf in.read(byte[] buf,int start, int size)读取数据到字节数组buf从buf的start位置开始存放size长度分数据 4)输出流基本方法 out.write(int b)写出一个byte到流,b的低8位 out.write(byte[] buf)将buf字节数组都写到流 out.write(byte[] buf, int start,int size) 字节数组buf从start位置开始写size长度的字节到流
查看全部 -
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos =new BufferedOutputStream(new FileoutputStream(destFile));
int c;
while((c.bis.read()!= -1)){
}
查看全部 -
public static void phhey(String framname){
FileInputSteam in = new InputSteam()
}
查看全部 -
数据输入输出流DataOutputStream/DataInputStream
对流的操作可以更方便的读取int,long,字符等类型数据
DataOutputStream dos=new DataOutputStream(OutputStream out);
DataInputStream dis=new DataInputStream(InputStream in);
包装实现对int、long、double、字符等数据写入/读取操作
dos.writeInt()/dos,writeDouble()....
dis.readInt()/din.readDouble()...
查看全部 -
文件输出流FileOutputStream
如果文件不存在,则直接创建,如果存在,删除后创建(在源文件后写入)
FileOutputStream out=new FileOutputStream(fileName(,boolean));
输出流基本方法,write只能写入八位
out.write(int b);写入一个byte到流,b的低八位
out.write(byte[] buf)将buf字节数组都写入到流
out.write(byte[] buf,int start,int size)
查看全部 -
字节流之文件输入流FilelnputStream
InputStream:抽象了应用程序读取数据方式;
FileInputStream in=new FileInputStream(fileName);
输入流基本方法:int b=in.read();读取一个字节无符号填充到int低八位;
in.read(byte[] buf); 从输入流中将最多
buf.length
个字节的数据读入一个 byte 数组中。in.read(byte[] buf,int start,int size);规定开始读取索引和最大读取长度,返回字符数组长度
查看全部 -
RandomAccessFile的操作:提供对文件内容的访问,既可以读文件,也可以写文件;支持随机访问文件,可以访问文件的任意位置
打开文件,两种模式"rw"(读写) "r"(只读):RandomAccessFile raf=new RandomAccessFile(file,"rw"/"r");
文件指针,打开文件时指针在开头pointer=0
写方法:raf.write(int):只写一个字节(后八位),同时指针指向下一个位置,准备再次写入
读方法:int b=raf.read():读文件指针必须移到头部,读取一个字节
byte[] bt=new byte[(int)raf.length];
raf.read(bt):一次性读取,将文件内容全部督导字节数组中
文件读写完毕必须关闭文件:raf.close();
查看全部 -
遍历目录:如果要遍历子目录下的内容就要构造成File对象做递归操作,File提供了直接返回File对象,如果是目录,需要递归操作,否则直接打印输出。
File[] files=File.listFiles();
for(File file:files) {
if(file.isDirectory()){将list递归调用;}
else System.out.println(file);
查看全部 -
byte[] b=String.getBytes();转化成字节序列用的是项目默认的编码gbk,gbk编码中文占2个字节,英文占一个字节
把字节转换为int后以16进制方式显示:Integer.toHexString(b&0xff)
byte[] b1=String.getBytes("utf-8");utf-8编码中文占3个字节,英文占1个字节
byte[] b2=String.getBytes("utf-16be");java是双字节编码,utf-16be中文占2个字节,英文占2个字节
当把字节序列变成字符串,也需要用相应的编码方式,否则会出现乱码
String str=new String(b);String str1=new String(b1,"utf-8");String str2=new String(b2,"utf-16be");
文本文件就是字节序列,可以是任意编码的字节序列,如果在中文机器上创建文本文件,该文件只认识ansi编码
查看全部 -
输入流 输出流基本方法
查看全部 -
File类常用API介绍:
public class FileDemo {
public static void main(String[] args) {
File file = new File("F:\\javaio\\imooc");
//System.out.println(file.exists());
if(!file.exists()) {
file.mkdir();
}else {
file.delete();
}
//是否是一个目录,如果是目录返回true,如果不是或者不存在返回false
System.out.println(file.isDirectory());
//是否是一个文件
System.out.println(file.isFile());
File file2 = new File("F:\\javaio\\日记1.txt");
if(!file2.exists())
try {
file2.createNewFile();
}catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
else {
file2.delete();
}
//常用的File对象API
System.out.println(file);//file.toString()的内容
System.out.println(file.getAbsolutePath());
System.out.println(file.getName());
System.out.println(file2.getName());
System.out.println(file.getParentFile());
System.out.println(file2.getParent());
System.out.println(file.getParentFile().getAbsolutePath());
}
}
查看全部 -
字节流、字符流
查看全部 -
RandomAccessFile的基本操作
查看全部
举报