字节输出流:OutputStream
public abstract class OutputStream
extends Object
implements Closeable,Flushable
构造:
public FileOutputStream(File file)throws FileNotFoundException 新建数据
public FileOutputStream(File file,boolean append)throws FileNotFoundException 追加数据
输出:
public abstract void write(int b)throws IOException 输出单个字节数据
public void write(byte b[ ])throws IOException 输出一组字节数据
public void write(byte b[ ],int off,int len)throws IOException 输出部分字节数据
写入数据:
public class OutputStreamDemo { public static void main(String[] args) throws Exception { File file = new File("d:" + File.separator + "demo.txt"); // 要操作的文件 OutputStream out = null; // 声明字节输出流 out = new FileOutputStream(file); // 通过子类实例化 String str = "hello world"; // 要输出的信息 byte b[] = str.getBytes(); // 将String变为byte数组 out.write(b); // 写入数据 } }追加数据:
public class AppendOutputStreamDemo { public static void main(String[] args) throws Exception { File file = new File("d:" + File.separator + "demo.txt"); // 要操作的文件 OutputStream out = null; // 声明字节输出流 out = new FileOutputStream(file, true); // 通过子类实例化,表示追加 String str = "hello world \r\n"; // 要输出的信息,“\r\n”表示换行 byte b[] = str.getBytes(); // 将String变为byte数组 out.write(b); // 写入数据 out.close(); // 关闭 } }
public abstract class InputStream
extends Object
implements Closeable,Flushable
读取:
public abstract int read()throws IOException 读取单个字节,当读取结束时返回-1public int read(byte[ ] b)throws IOException 读取多个字节数据(具体详见百度)
public int read(byte[ ] b,int off,int len)throws IOException 读取指定字节数据
读取所有数据
public class InputStreamDemo01 { public static void main(String[] args) throws Exception { File file = new File("d:" + File.separator + "demo.txt"); // 要操作的文件 InputStream input = null; // 字节输入流 input = new FileInputStream(file);// 通过子类进行实例化操作 byte b[] = new byte[1024];// 开辟空间接收读取的内容 int len = input.read(b); // 将内容读入到byte数组中 System.out.println(new String(b, 0, len)); // 输出内容 input.close(); // 关闭 } }
public abstract class Writer
extends Object
implements Closeable,Flushable,Appendable
方法:
public abstract void close() throws IOException 关闭输出流
public void write(String str) throws IOException 将String字符串输出
public void write(char[ ] str) throws IOException 将字符数组输出public abstract void flush() throws IOException 强制性清空缓存
示例:
public class WriterDemo { public static void main(String[] args) throws Exception { File file = new File("d:" + File.separator + "demo.txt"); // 要操作的文件 Writer out = null; // 声明字符输出流 out = new FileWriter(file); // 通过子类实例化 String str = "hello world"; // 要输出的信息 out.write(str); // 写入数据 out.flush(); // 刷新 } }字符输入流:Reader
public abstract class Reader
extends Object
implements Closeable,Readable
方法:
public abstract void close() throws IOException 关闭输出流
public int read() throws IOException 读取单个字符
public int read(char[ ] str) throws IOException 将内容读取到字符数组,返回读入的长度示例:
public class ReaderDemo01 { public static void main(String[] args) throws Exception { File file = new File("d:" + File.separator + "demo.txt"); // 要操作的文件 Reader input = null; // 字符输入流 input = new FileReader(file);// 通过子类进行实例化操作 char b[] = new char[1024];// 开辟空间接收读取的内容 int len = input.read(b); // 将内容读入到byte数组中 System.out.println(new String(b, 0, len)); // 输出内容 input.close(); // 关闭 } }
1)字节流没有使用缓冲区,而字符流使用到了。
2)字节流可以处理各种数据,但在处理中文时用字符流更好。