io流

1.Throwable 异常
Error: 错误,严重问题,不需要处理
Exception 我们常说的异常
运行期异常:RuntimeException 在编译期不处理
运行时异常:非RuntimeException 必须处理 才能运行
2.File
构造方法:
FIle(String pathname)
File f1 = new File("d:\\aa\\b.txt");

File(String parent,String child)
File f2 = new File("d:\\a","b.txt")

File(File parent, String)
File f3 = new File("d:\\a");
File f4 = new File(f3,"b.txt");
创建方法:
boolean createNewFile()创建文件
文件不存在,创建文件 返回true
文件存在,文件创建失败返回false
boolean mkdir()创建目录
目录不存在,创建目录 返回true
目录存在,目录创建失败返回false
boolean mkdirs()创建多级目录
删除方法
delete
f.delete();
如果目录中有内容,就不能直接删除
判断方法:
isDirectory()判断是否是目录
isFile()判断是否是文件
exists() 判断是否存在
获取功能:
getAbsoultePath()获取绝对路径
getPath()创建文件时用的什么路径就拿到什么路径,一般用于获取相对路径
getName()获取名字
listFiles()获取指定文件夹下所有的文件(夹)File对象 File[]
list()获取指定文件夹下的所有文件(夹)名字  String[]
IO流
IO流复制文件时候,如果目的地文件不存在,创建文件时的码表是项目默认码表
字节流(抽象类)
 普通字节流
InputStream 字节输入流     用于从文件中读出数据
new FileInputStream(String)
new FileInputStream(File)
int read()读一个字节 返回这个字节的值 如果没有值了返回-1
int read(byte[]) 将数据读入byte数组中 返回有效字节长度 如果没有值了返回-1

FileInputStream fis = new FileInputStream("a.txt");
FileOutputStream fos = new FileOutputStream("b.txt");
byte[] bs = new byte[1024];
// 记录读取的有效字节数
int len = 0;
while((len=fis.read(bs)) != -1){
System.out.println(new String(bs,0,len));
//写到b.txt
fos.write(bs,0,len);
}
---------------
int b;
while((b = fis.read()) != -1){
fos.write(b);
}
System.out.println("-------------------");
FileInputStream fis = new FileInputStream("a.txt");
int b;
while((b=fis.read())!=-1){
System.out.println((char)b);
}

OutputStream 字节输出流    用于将数据写入File
new FileOutputStream(String)
new FileOutputStream(String,boolean);//是否拼接写入
new FileOutputStream(File)
new FileOutputStream(File,boolean)//是否拼接写入
write(int); void 将byte读到file中
write(byte[]);void 将byte[]读到file中
write(byte[],int off, int len); void 将byte[]指定长度读到file中

FileOutputStream fos = new FileOutputStream("a.txt");
FileOutputStream fos = new FileOutputStream(File);
1.调用系统功能创建了文件
2.创建字节输出流对象
3.让字节输出流对象指向了a.txt
fos.write(int);
fos.write(byte[]);
fos.write(byte[],int off, int len);
 高效字节流
BufferedOutputStream字节缓冲输出流(比FileOutputStream高效)
构造方法:
new BufferedOutputStream(OutputStream out)
FileOutputStream fos = new FileOutputStream("a.txt");
BufferedOutputStream bos = newBufferedOutputStream(fos);
write方法和FileOutputStream一样
BufferedInputStream字节缓冲输入流(比FileInputStream高效)
构造方法:
new BufferedInputStream(InputStream out)
FileInputStream fos = new FileInputStream("a.txt");
BufferedInputStream bos = newBufferedInputStream(fos);
read方法和FileInputStream一样

转换流(就是一个字符流 转化流= 字节流+编码表)
OutputStreamWriter字符输出流(字符通向字节的桥梁)
new OutputStreamWriter(OutputStream out)
new OutputStreamWriter(OutputStream out,String charSetName)
void write(int c)写入单个字符。
void write(char[] c)写入单个字符数组。
void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 
void write(String str)写入单个字符串。
void write(String str, int off, int len)  写入字符串的某一部分。 
void flush()刷新该流的缓冲
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("a.txt"),"utf-8")
char[] chs ={'a','b'};
osw.write(chs,0,2);
String str = "hello";
osw.write(str,0,3);
InputStreamReader字符输入流(字节通向字符的桥梁)
new InputStreamReader(InputStream out)
new InputStreamReader(InputStream out,String charSetName)
int read(char[] cbuf, int offset, int length) 将字符读入数组中的某一部分。
int read() 读取单个字符。 
字符流
 普通字符流
FileWriter
继承了OutputStreamWriter
构造方法FileWriter(String filename)
                                        FileWriter(File file, boolean append)创建的文件是否可追加
FileReader
继承了InputStreamReader
构造方法FileReader(String filename)
 高效字符流
BufferedWriter
构造方法
new BufferedWriter(Writer out)
void newLine() 
 写入一个行分隔符。 
void write(char[] cbuf, int off, int len) 
 写入字符数组的某一部分。 
void write(int c) 
 写入单个字符。 
void write(String s, int off, int len) 
 写入字符串的某一部分。 


BufferedWriter bw = new BufferedWriter(FileWriter("a.txt"))
bw.write("hello");
bw.newLine();//另起一行
bw.flush();//刷新
BufferedReader
构造方法
new BufferedReader(Reader in)
int read() 
 读取单个字符。 
int read(char[] cbuf, int off, int len) 
 将字符读入数组的某一部分。 
String readLine() 
 读取一个文本行,读不到返回null 


BufferedReader br = new BufferedReader(FileReader("a.txt"));
String str ;
while((str = br.readLine())!=null){
bw.write(str);
bw.newLine();
bw.flush();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值