字节流,按字节读取数据,是万能流,可以读取任何形式的文件,下面主要是FileInputStream和FileOutputStream
package com.java.cq.IO.test;
import java.io.FileInputStream;
import java.io.IOException;
public class Iotest03 {
public static void main(String [] agrs) {
//创建字符流输入对象
//构造函数中的对象是文件地址
FileInputStream fis=null;
try {
fis=new FileInputStream("d:\\学习笔记\\java\\ws.txt");
//在文件写入abcef后
//读取数据使用循环
/*
* while(true) { int readable= fis.read();//读到的字节大小 if(readable==-1) break;
* System.out.println(readable);//97 98 32 99 //32是一个空格,空格的大小32 } while循环看着不舒服
* //改进代码
* int readable=0; while((readable=fis.read())!=-1) {
System.out.println(readable); //但是读取的效率还是太低 }
*/
//read(Byte[] b)方法读取 每次按照数组长度读取
byte[] b=new byte[4];
int data=0;
while(( data=fis.read(b))!=-1) {
System.out.print(new String(b,0,data));
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
System.out.println("文件不存在");//自己处理异常
}finally {
if(fis!=null) {
//确保流一定关闭
try {
fis.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
}
package com.java.cq.IO.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*FileOutputStream 输出流
*/
public class Iotest {
public static void main(String [] agrs){
//文件字节输出流对象
FileOutputStream fos =null;
try {
//如果没有文件它会字节创建
fos=new FileOutputStream("D:\\学习笔记\\java\\ws.txt",true);
//开始写
byte [] b = {97,98,99,100};
// 但是会清空远文件
fos.write(b);
//写全部
fos.write(b, 0, 2);//写部分
//写完之后刷新
fos.flush();//刷新
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
if(fos!=null) {
try {
fos.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
}
字节流练习代码
package com.java.everdattest;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
//文件复制
public class Todaystest11 {
public static void main(String [] agrs){
//创建对象
FileInputStream fis =null;//读
FileOutputStream fos =null;
try {
fis=new FileInputStream("D:\\学习笔记\\java\\ws.txt");//读取文件对象文件
fos=new FileOutputStream("D:\\学习笔记\\java\\wss.txt");//输入对象文件
byte [] b =new byte[fis.available()];
fis.read(b);
fos.write(b);
fos.flush();
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
if(fis!=null) {
try {
fis.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
if(fos!=null) {
try {
fos.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
}