read()一次读取一个字节
-
FileInputStream fis = new FileInputStream("aaa.txt"); //创建一个文件输入流对象,并关联aaa.txtint b; //定义变量,记录每次读到的字节while((b = fis.read()) != -1) { //将每次读到的字节赋值给b并判断是否是-1 System.out.println(b); //打印每一个字节}fis.close(); //关闭流释放资源
write()一次写出一个字节
-
FileOutputStream fos = new FileOutputStream("bbb.txt"); //如果没有bbb.txt,会创建出一个//fos.write(97); //虽然写出的是一个int数,但是在写出的时候会将前面的24个0去掉,所以写出的一个bytefos.write(98);fos.write(99);fos.close();
FileOutputStream的构造方法写出数据如何实现数据的追加写入
-
FileOutputStream fos = new FileOutputStream("bbb.txt",true); //如果没有bbb.txt,会创建出一个//fos.write(97); //虽然写出的是一个int数,但是在写出的时候会将前面的24个0去掉,所以写出的一个bytefos.write(98);fos.write(99);fos.close();
拷贝图片
- FileInputStream读取
-
FileOutputStream写出
Scanner sc = new Scanner(System.in);FileOutputStream fos = new FileOutputStream("text.txt");System.out.println("请输入:");while(true) { String line = sc.nextLine(); if("quit".equals(line)) break; fos.write(line.getBytes()); fos.write("\r\n".getBytes());}fos.close();
字节数组拷贝之available()方法
FileInputStream fis = new FileInputStream("致青春.mp3");FileOutputStream fos = new FileOutputStream("copy.mp3");byte[] arr = new byte[fis.available()]; //根据文件大小做一个字节数组fis.read(arr); //将文件上的所有字节读取到数组中fos.write(arr); //将数组中的所有字节一次写到了文件上fis.close();fos.close();
定义小数组的标准格式
FileInputStream fis = new FileInputStream("致青春.mp3"); //创建文件输入流对象,关联致青春.mp3BufferedInputStream bis = new BufferedInputStream(fis); //创建缓冲区对fis装饰FileOutputStream fos = new FileOutputStream("copy.mp3"); //创建输出流对象,关联copy.mp3BufferedOutputStream bos = new BufferedOutputStream(fos); //创建缓冲区对fos装饰int b;while((b = bis.read()) != -1) { bos.write(b);}bis.close(); //只关装饰后的对象即可bos.close();
给图片加密
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.jpg"));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.jpg"));int b;while((b = bis.read()) != -1) { bos.write(b ^ 123);}bis.close();bos.close();
在控制台录入文件的路径,将文件拷贝到当前项目下
Scanner sc = new Scanner(System.in);System.out.println("请输入一个文件路径");String line = sc.nextLine(); //将键盘录入的文件路径存储在line中File file = new File(line); //封装成File对象FileInputStream fis = new FileInputStream(file);FileOutputStream fos = new FileOutputStream(file.getName());int len;byte[] arr = new byte[8192]; //定义缓冲区while((len = fis.read(arr)) != -1) { fos.write(arr,0,len);}fis.close();fos.close();
将键盘录入的数据拷贝到当前项目下的text.txt文件中,键盘录入数据当遇到quit时就退出
Scanner sc = new Scanner(System.in);FileOutputStream fos = new FileOutputStream("text.txt");System.out.println("请输入:");while(true) { String line = sc.nextLine(); if("quit".equals(line)) break; fos.write(line.getBytes()); fos.write("\r\n".getBytes());}fos.close();