IO FileInputStream 输入字节流类(读文件) FileOutputStream 输出字节流(写文件) 复制文件
类 FileInputStream
从文件系统中的某个文件中获得输入字节
类 FileOutputStream
文件输出流是用于将数据写入 File
或 FileDescriptor
的输出流
1 package io; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 /* 6 * * FileOutputStream(File file) 7 创建一个向指定 File 对象表示的文件中写入数据的文件输出流 8 write(byte[] b, int off, int len) 9 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 10 11 * write(int b) 12 将指定字节写入此文件输出流。 13 */ 14 public class FileOutputStreamDemo1 { 15 public static void main(String[] args) throws Exception { 16 //FileOutputStream fos = new FileOutputStream("names.txt"); 17 //1.创建输出流对象 18 File file = new File("names.txt"); 19 //FileOutputStream fos = new FileOutputStream(file,true);//在原来的数据上追加 20 FileOutputStream fos = new FileOutputStream(file);//会抹去原来的数据 21 //2.通过输出流独享的方法写入到文件中 22 byte[] buf = {97,98,5,25,23}; 23 fos.write(buf,1,2); 24 //3.释放资源 25 fos.close(); 26 } 27 }
2.类 FileInputStream
从文件系统中的某个文件中获得输入字节
1 package io; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 6 public class FileInputStreamDemo1 { 7 8 public static void main(String[] args) throws Exception { 9 // 创建字节输入流对象 10 FileInputStream fis = new FileInputStream("names.txt"); 11 12 // 使用流对象的方法读取数据 13 // int i = fis.read(); 14 // System.out.println((char) i); 15 // i = fis.read(); 16 // System.out.println((char) i); 17 // i = fis.read(); 18 // System.out.println((char) i); 19 // i = fis.read(); 20 // System.out.println((char) i); 21 // i = fis.read(); 22 // System.out.println((char) i); 23 24 25 //一次读取一个字节的方式 26 int i = 0; 27 while((i = fis.read()) != -1){ 28 System.out.print((char)i); 29 } 30 31 //一次读取一个字节数组 32 byte[] buf = new byte[1024];//缓冲区 33 int len = 0; 34 while((len = fis.read(buf)) != -1){ 35 String s = new String(buf,0,len); 36 System.out.print(s); 37 } 38 39 // 释放资源 40 fis.close(); 41 42 } 43 }
read(byte[] b, int off, int len)
从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1
。
byte[] |
getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
3.复制文件