FileInputStream
和FileOutputSream
类是InputStream的子类,专门用于对文件进行读写。如果程序对文件的操作比较简单,比如只是顺序地读写文件,那么就可以使用FileInputStream
和FileOutputSream
类创建的流对文件进行读写操作。
先在桌面的test文件夹中新建两个文件:Hello.txt和Happy.txt。在Hello.txt中写入“Hello World!”,Happy.txt则为空文档,用来写入数据。
直接上代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
File file = new File("C:\\Users\\lenovog\\Desktop\\test\\Hello.txt");
File file2 = new File("C:\\Users\\lenovog\\Desktop\\test\\Happy.txt");
byte[] b = new byte[100];//一次读取100字节
int count = 0;//实际读取的字节总数,初始值为0
String txt = "Happy 2016!";
byte[] b2 = txt.getBytes();//将字符串txt转换为字节数组
try {
//输入流
System.out.println("———————————————向文件读取内容———————————————");
FileInputStream iStream = new FileInputStream(file);
while((count = iStream.read(b))!=-1){ //读取至文件末尾时,count的值就为-1
String string = new String(b, 0, count);//从0开始
System.out.println(string);
}
iStream.close();
//输出流
System.out.println("———————————————向文件写入内容———————————————");
FileOutputStream oStream = new FileOutputStream(file2);
oStream.write(b2);
oStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行结果:
———————————————向文件读取内容———————————————
Hello World!
———————————————向文件写入内容———————————————
再打开Happy.txt,可以看到里面已经写入了“Happy 2016!”。