创建FileOutputStream对象时, 如果对应的文件在硬盘上不存在,则会(自动创建 ); 如果对应的文件在硬盘上已经存在,则(覆盖);如果使用FileOutputStream(String path,boolean append)这个构造方法创建FileOutputStream对象,并给定第二个参数为true,则效果为(可以添加参数)
创建FileOutputStream时(不会)产生异常 (流的分类)对于FileInputStream来说,从方向上来分,它是(输入)流,从数据单位上分,它是(字节)流,从功能上分,它是(轻级流)(字节流,FileInputStream)
FileInputStream有三个重载的read方法,其中1)无参的read方法返回值为(int)类型,表示(下一个数据字节;如果已到达文件未尾,则返回-1)
2)int read (byte[]bs)方法返回值表示(读入缓冲区的字节总数,如果因为已经到达文件未尾而没有更多 数据,则返回-1),参数表示(存储读取数据的缓冲区)
3)int read (byte [] bs,int offset,int len)方法返回值表示(读入缓冲区的字节总数,如果因为已经到达文件未尾而没有更多的数据,则返回-1),参数分别表示(b:存储读取数据的缓冲区 off:目标数组 b中的起始偏移量,len读取的最大字节数)
(FileInputStream)下面关于FileInputStream 类型说法正确的是:a A. 创建FileInputStream 对象是为了读取硬盘上的文 B. 创建FileInputStream 对象时,如果硬盘上对应的文件不存在,则抛出一个异常 C. 利用FileInputStream 对象可以创建文件 D. FileInputStream 对象读取文件时,只能读取文本文件。
复制一个文档到别一个文档中 package org.jsoft.zouye;
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.io.InputStream; public class Copy { public static void main(String[] args) { File f=new File("f:"+File.separator+"creat.txt");//写入一个要粘贴的文档 File f1=new File ("f:"+File.separator+"copy.txt");//写入一个要被复制的新文档
OutputStream so1=null;/写出
OutputStream so=null;//写出
InputStream in=null;//写入
try {
so=new FileOutputStream(f1);
in=new FileInputStream(f1);
for(int i=97;i<124;i++){//要被复制文档中的内容
so.write(i);
} so1=new FileOutputStream(f);//要加入内容的文档 byte[ ]b1=new byte[(byte) f1.length()];//创建一个数组存入f1中的元素 in.read(b1);//读取f1中的内容,并放入b1中
for(int i=0;i<b1.length;i++){
so1.write(b1[i]);//依次把b1中的元素存入新的文档
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
so.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }
package org.jsoft.zouye;
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream;
public class TestOutAdd { public static void main(String[] args) { File f=new File("f:"+File.separator+"test.txt");//创建一个test文档 OutputStream os=null;//扩大作用域 InputStream is=null; try { os=new FileOutputStream(f,true);//创建一个新的输出流,f代表要定入的文档,true表示 is=new FileInputStream(f);//读取文件 //如果存在则将字节定入文件未尾处 String s="hello,world";//要写入的字符串 byte b[]=s.getBytes();//将字符串转换成byte os.write(b);//写入b byte b1[]=new byte[200];//定义一个新的数组 int in=is.read(b1);//读取b1中的元素 String str=new String (b1,0,50);//在b1文档从0到200 System.out.println(str);//输出文档中的元素
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{//释放资源
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }