FilelnputStream与FileOutputStream分别继承自InputStream和OutputStream,以字节为单位广泛用于文件操作的节点流。FilelnputStream类用于从文件读取数据,FileOutputStream类用于将数据写入文件。
FileInputStream类常用的构造方法:
·FilelnputStream(File file),通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的File对象file命名。
·FileInputStream(String name),通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名。
FileOutputStream类常用的构造方法:
·FileOutputStream(File file),创建文件输出流以写入指定的由File对象表示的文件。
·FileOutputStream(File file,boolean append),创建文件输出流以写入指定的由File对象表示的文件。若append为false表示采用新建文件写入,为true表示采用追加方式从文件末尾处写入。
·FileOutputStream(String name).创建文件输出流以指定的名称写入文件。
·FileOutputStream(String name,boolean append),创建文件输出流以指定名称写入文件,append为false表示采用新建文件写入,为true表示采用追加方式从文件末尾写入。
复制文件就是将一个文件读出然后写人另一个文件的过程。
代码示例:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PictureCopy {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("D:\\lzh\\Pictures\\Saved Pictures\\1.jpg");
fos = new FileOutputStream("D:\\lzh\\Pictures\\Saved Pictures\\2.jpg");
byte[] buffer = new byte[20];
int len;
while((len=fis.read(buffer))!=-1){
for (int i = 0; i < len; i++) {
buffer[i]= (byte) (buffer[i] ^ 5);
}
fos.write(buffer,0,len);
}
}catch(IOException e){
e.printStackTrace();
}finally {
if(fos!=null){
try{
fos.close();
}catch (IOException e){
e.printStackTrace();
}
}
if(fis!=null){
try{
fis.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
}
注意这里对图片进行了加密(异或运算)。