java 使用FileOutputStream保存文件 fileoutputstream用法
转载
- FileInputStream(File file): 创建一个新的FileInputStream,给定要读取的File对象。
- FileInputStream(String fileName): 创建一个新的 FileInputStream,给定要读取的文件的名称。
- FileOutStream(File file): 创建一个新的FileOutStream,给定要读取的File对象。
- FileOutStream(String fileName): 创建一个新的 FileOutStream ,给定要读取的文件的名称。
- FileOutStream(File file,boolean append): 创建一个新的FileOutStream,指明是否在现有文件末尾追加内容。
- 写出:write(byte [] b,0,len)
File f1=new File("D:\\io\\io2\\周杰伦 - 稻香.flac");
File f2=new File("D:\\io\\io1\\周杰伦 - 稻香_copy.flac");//文件名后要加\\周杰伦 - 稻香_copy.flac否则找不到指定文件
FileInputStream i=null;
FileOutputStream o=null;
try {
i=new FileInputStream(f1);
o=new FileOutputStream(f2);
byte [] b=new byte [1024];
int len;
while((len=i.read(b))!=-1) {
o.write(b, 0, len);
}
System.out.println("复制成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(i!=null) {
i.close();
}
if(o!=null) {
o.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
- 1.因为涉及到流资源的关闭操作,所以出现异常的话,需要使用try-catch-finally的方式来处理异常
- 2.对于输入流来讲,要求File类的对象对应的物理磁盘上的文件必须存在。否则,会报FileNotFoundException异常。对于输出流来讲,File类的对象对应的物理磁盘上的文件可以不存在。
- 如果此文件不存在,则在输出的过程中,会自动创建此文件,并写出数据到此文件中。
- FileOutStream(File file)或 FileOutStream(File file,false):输出数据过程中,会新建同名的文件对现有的文件进行覆盖。
- FileOutStream(File file,true):输出数据过程中,会在现有的文件的末尾追加写出内容。
- 3.对于字符流,只能用来操作文本文件,不能用来处理非文本文件的。对于字节流,通常是用来处理非文本文件的。但是,如果涉及到文本文件的复制操作,也可以使用字节流。
- 说明:文本文件:.txt、.java、.C、.cpp、.py等。文本文件:.doc、.xls、.jpg、.pdf、.mp3、.mp4、.avi 等
- public int read(): 从输入流读取一个字节。返回读取的字节值。虽然读取了一个字节,但是会自动提升为int类型。如果已经到达流末尾,没有数据可读,则返回-1。
- public int read(byte[] b): 从输入流中读取一些字节数,并将它们存储到字节数组 b中 。每次最多读取b.length个字节。返回实际读取的字节个数。如果已经到达流末尾,没有数据可读,则返回-1。
- public int read(byte[] b,int off,int len):从输入流中读取一些字节数,并将它们存储到字节数组 b中,从b[off]开始存储,每次最多读取len个字节 。返回实际读取的字节个数。如果已经到达流末尾,没有数据可读,则返回-1。
- public void write(int b):将指定的字节输出流。虽然参数为int类型四个字节,但是只会保留一个字节的信息写出。
- public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。
- public void write(byte[] b, int off, int len):从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。
- public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
- public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
- 说明:close()方法,当完成流的操作时,必须调用此方法,释放系统资源。
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。