请用字节流往一个文本文件中写一句话:"helloworld"。
分析:
首先要知道是字节流
写数据我们就应该知道是字节输出流
所以最终选择了OutputStream
而OutputStream是抽象类,所以我们应该找其子类
文件这个单词是File,所以我们就大胆的猜测下:FileOutputStream存在否。
我们如何往一个文件写数据呢?
或者说就是字节输出流的操作步骤是什么呢?
package cokm.edu_01;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* A:创建字节输出流对象
* B:调用写数据的方法
* C:释放资源
*/
public class OutputStreamDemo {
public static void main(String[] args) throws IOException {
/**
* 怎么使用文件输出流往文件中途写数据?
* 1.创建文件输出流对象
* 2.调用输出流对象的方法给文件中写数据
* 3.释放资源
*/
//public FileOutputStream(String name)
//public FileOutputStream(File file)
//创建文件输出流对象
FileOutputStream fos = new FileOutputStream("a.txt");
//public FileOutputStream(File file)
//File file = new File("a.txt");
//FileOutputStream fos = new FileOutputStream(file);
/**
* FileOutputStream fos = new FileOutputStream("a.txt");
* 做了那些事情?
* 1.创建fos对象指向文件a.txt
* 2.创建一个文件a.txt
*/
//调用输出流的写数据的方法给文件中写数据
//public void write(byte[] b)
byte[] byf = "helloworld".getBytes();
fos.write(byf);
//释放资源,关流操作
fos.close();
//关流之后,我们还能继续往文件中写数据码
//这样是不行的。。
//fos.write("java".getBytes());//java.io.IOException: Stream Closed
}
}
package cokm.edu_01;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class OutPutStreamDemo2 {
public static void main(String[] args) throws IOException {
/**
* FileOutputStream写数据的方法
write(byte[] b)
write(int b) :一次写一个字节
write(byte[] b, int off, int len) :一次写一个字节数组的一部分
*/
/**
* 1.创建文件输出流对象,并关联指定文件
* 2.调用写书数据的方法,写书文件
* 3.关流
*/
//1.创建文件输出流对象,并关联指定文件
FileOutputStream fos = new FileOutputStream("b.txt");
//2.调用写书数据的方法,写书文件
//write(int b) :一次写一个字节
//fos.write(97);
//write(byte[] b, int off, int len) :一次写一个字节数组的一部分
byte[] byf = {97,98,99,100};
fos.write(byf, 1, 2);
//3.关流
fos.close();
}
}