下面要给大家介绍的是和文件输出流FileOutputStream类相关的内容,对于FileOutputStream类你了解多少呢?通过下文来了解一下吧。
FileOutputStream类继承自OutputStream类,重写和实现了父类中的所有方法,FileOutputStream类的对象表示一个文件字节输出流,可以向流中写入一个字节或一批字节,在创建FileOutputStream类的对象的时候,假如,指定的文件不存在,那么,创建一个新文件;假如文件已经存在,那么,清除原文件的内容重新写入。
FileOutputStream类构造方法的4种重载形式:
FileOutputStream(File file)-创建一个文件输出流,参数file指定目标文件。
FileOutputStream(File file,boolean append)-创建一个文件输出流,参数file指定目标文件,append指定是否将数据添加到目标文件的内容末尾,假如,为true,则在末尾添加;假如,为false,则覆盖原有内容;其默认值为false。
FileOutputStream(String name)-创建一个文件输出流,参数name指定目标文件的文件路径信息。
FileOutputStream(String name,boolean append)-创建一个文件输出流,参数name和append的含义同上。
注意一下:使用构造方法FileOutputStream(String name,boolean append) 创建一个文件输出流对象,它将数据附加在现有文件的末尾,这个字符串name指明了原文件,假如,只是为了附加数据而不是重写任何已有的数据,布尔类型参数append的值应为true。
文件输出流说明:
在FileOutputStream类的构造方法中指定目标文件的时候,目标文件可以不存在。
目标文件的名称可以是任意的,例-D:\\abc、D:\\abc.de 和 D:\\abc.de.fg等都可以,可以使用记事本等工具打开并浏览这些文件中的内容。
目标文件所在目录必须存在,否则会拋出java.io.FileNotFoundException异常。
目标文件的名称不能是已存在的目录,例-D盘下已存在Java文件夹,那么就不可以使用Java作为文件名,也就是不能使用D:\\Java,否则抛出java.io.FileNotFoundException异常。
示例:
同样是读取D:\myJava\HelloJava.java文件的内容,在这里使用FileInputStream类实现,之后,再将内容写入新的文件D:\myJava\HelloJava.txt当中。
具体代码:
public class Test11 { public static void main(String[] args) { FileInputStream fis = null; // 声明FileInputStream对象fis FileOutputStream fos = null; // 声明FileOutputStream对象fos try { File srcFile = new File("D:/myJava/HelloJava.java"); fis = new FileInputStream(srcFile); // 实例化FileInputStream对象 File targetFile = new File("D:/myJava/HelloJava.txt"); // 创建目标文件对象,该文件不存在 fos = new FileOutputStream(targetFile); // 实例化FileOutputStream对象 byte[] bytes = new byte[1024]; // 每次读取1024字节 int i = fis.read(bytes); while (i != -1) { fos.write(bytes, 0, i); // 向D:\HelloJava.txt文件中写入内容 i = fis.read(bytes); } System.out.println("写入结束!"); } catch (Exception e) { e.printStackTrace(); } finally { try { fis.close(); // 关闭FileInputStream对象 fos.close(); // 关闭FileOutputStream对象 } catch (IOException e) { e.printStackTrace(); } } } }
上述代码,将D:\myJava\HelloJava.java文件中的内容通过文件输入/输出流写入到了 D:\myJava\HelloJava.txt文件中,因为,HelloJava.txt文件并不存在,所以,在执行程序的时候,将新建此文件,并写入相应内容。
运行程序,成功后会在控制台输出“写入结束!”,这个时候,打开D:\myJava\HelloJava.txt文件会发现,里面的内容和HelloJava.java文件的内容相同。
如下所示:
技巧:在创建FileOutputStream对象的时候,将append参数设置为true,那么就能够在目标文件的内容末尾添加数据,这个时候,目标文件仍然可以暂不存在。
以上的内容你都清楚了吗?更多相关基础内容,请继续关注奇Q工具网的java入门栏目来进行了解吧。
推荐阅读:
java字节流,文件输入流FileInputStream类介绍