FileInputStream通过字节的方式读取文件,适合读取所有类型的文件(图像、视频、文本文件等)。Java也提供了FileReader专门读取文本文件。
FileOutputStream 通过字节的方式写数据到文件中,适合所有类型的文件。Java也提供了FileWriter专门写入文本文件。
【示例】将文件内容读取到程序中
public class IoTestInPut {
public static void main(String[] args) {
File file =new File("abc.txt");
InputStream is=null;
try {
is=new FileInputStream(file);
byte[] temp=new byte[3];
int len=-1;
while((len=is.read(temp))!=-1){
String str=new String(temp,0,len);
System.out.println(str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
}
}
【示例】将字符串/字节数组的内容写入到文件中
public class IoTestOutPut {
public static void main(String[] args) {
File file = new File("ac.txt");
OutputStream os =null;
try {
os=new FileOutputStream(file);
String str="duo lian xi jia you !";
byte[] temp=str.getBytes();
os.write(temp,0,temp.length);
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e ){
e.printStackTrace();
}finally{
if(null!=os){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
在示例中,用到一个write方法:void write(byte[ ] b),该方法不再一个字节一个字节地写入,而是直接写入一个字节数组;另外其还有一个重载的方法:void write(byte[ ] b, int off, int length),这个方法也是写入一个字节数组,但是我们程序员可以指定从字节数组的哪个位置开始写入,写入的长度是多少。
【示例】利用文件流实现文件的复制
import java.io.*;
public class IOTestCopy {
public static void main(String[] args) {
copy("src/cn/sut/io/IoTEstCopy.java", "Copy.txt");
}
public static void copy(String srcPath, String destPath) {
File src = new File(srcPath);
File dest = new File(destPath);
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(src);
os = new FileOutputStream(dest);
byte[] bytes = new byte[1024];
int len = -1;
while ((len = is.read(bytes)) != -1) {
os.write(bytes, 0, bytes.length);
}
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != os) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
流实现文件的复制