/*
字节输出流 OutputStrema:
* OutputStream抽象类
* write(int b); 将指定的字节写入此流中
* write(byte[] b); 将指定的数组 输入此流中
* write(byte[] b , int a , int c); 将指定的数组输入此流中 从a索引开始 获取c 个
* close(); 将此流关闭 并释放资源
* flush(); 刷新缓冲区 并将文件写入
* */
字节输出流的子类 FileOutputStream:
/*
* FileOutputStream
* 1.创建FileOutStream 的对象
* 需要向构造方法传递文件的路径
* FileOutputStream ss = new FileoutputStream("d:a.txt");
* 如果路径中的文件 不存在 会自动创建 如果存在会直接覆盖
* ss.write(66); //注意他会转换成字节 然后输出
* ss.close();
*
* */
FileOutStream fls = new FileOutStream("c:/gubin.txt");
String fi = "姚晓曦";
byte[] bb = fi.getbytes();
fls.write(bb);
或者
String ss = "古斌啦啦啦";
file.write(ss.getbytes());
如下图演示:
输出的续写功能 与换行符:
/*
* 输出的续写功能
* FileOutputStream 中的参数 填写true
* stream.write("gubin666\r\n".getBytes());
* 这个里面加上换行符 \r\n 或者\br
* */
public static void main(String[] args) throws Exception {
System.out.println("请输入你要输入的位置");
Scanner scanner = new Scanner(System.in);
String lujing = scanner.next();
FileOutputStream stream = new FileOutputStream(lujing,true);
stream.write("咕咕咕111\r\n".getBytes());
stream.write("咕咕咕222".getBytes());
}
=======================================================================
FileInputStream 读取文件 字节流的方式:
/*
Fls.read();这个读取的是一字节 返回结果是int
FileInputStream 读取字节,
FileInputStream fis = new FileInputStream("F:yxx.txt"); //这个参数填写要读取的文件的路径
fis.read();这个方法的返回值是int 返回一个字节 会自动转换成char类型 比如 你写a 控制台就会输出 97
int len = 0; 定义一个初始变量 用它接收 fis.read()返回的结果
while( ( len = fis.read())!=-1){ //因为当fis.read()执行就 读取下一个 如果没有的话 会返回-1 用这个当做结束条件
print(len);
}
fis.close(); //记得关闭
*/
这个字节输入流只能读取字符不可读取汉字
//向系统盘创建 一个文件
FileOutputStream fos = new FileOutputStream("F:yxx.txt");
String in = "1234faefaeffa56";
fos.write(in.getBytes());
//读取这个文件
//注意不可以读字符串
FileInputStream fis = new FileInputStream("F:yxx.txt");
int len = 0; //这个变量用于保存fis.read()返回的结果
while((len = fis.read())!= -1){
System.out.print((char)len);
}
}
FileInputStream 读取数据:使用字节数组读取:
FileInputStream fis = new FileInputStream("F:yxx.txt");
int len = 0; //这个变量用于保存fis.read()返回的结果
byte[] by = new byte [1024]; //定义一个字节数组
while((len = fis.read(by))!= -1){ //使用fis.read(数组);这个方法 存入数据
System.out.println(new String(by,0,len)); //调用String 类的构造方法 读取by数组 从0索引开始 读取len个
}
fis.close();
fos.close();