输入输出流

一.字节输入流/输出流

1.字节输入流


构造方法
public FileInputStream(String name)
示例:
FileInputStream fis=new FileInputStream("a.txt");
常用方法
 int read() 
          从输入流中读取数据的下一个字节。 
 int read(byte[] b) 
          从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 

1.字节输入流(一次读取一个字节数组)

//模板代码
int by=0
while((by=字节输入流对象.read())!=-1){
System.out.print((char)by);
}

2.字节输入流(一次读取一个字节)

//模板代码
byte[] bys=new byte[];
int len=0;
while((len=字节输入流对象.read(bys))!=-1){
     System.out.print(new String(bys,0,len));
}

2.字节输出流

//构造方法
FileOutputStream(File file) 
          创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
示例:
FileOutputStream fos=new FileOutputStream("a.txt");
public abstract void write(int b):将指定的字节写入到输出流中
public void write(byte[] b):将指定的字节数组写入到输出流中
public void write(byte[] b, int off,int len):将字节数组的一部分写入到输出流中

2.字节缓冲区输入/输出流

缓冲输入/输出流不能直接对文件进行操作

1.字节缓冲输入流

//构造方法
BufferedInputStream(InputStream in) 
          创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
示例:
BufferedInputStream biw=new BufferedInputStream(new FileInputStream("a.txt"));
//常用方法`
 void close() 
          关闭此输入流并释放与该流关联的所有系统资源 
  int read()
          从输入流中读取数据的下一个字节。 
 int read(byte[] b, int off, int len) 
          从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。  

2.字节缓冲输出流

//构造方法
BufferedOutputStream(OutputStream out) 
          创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
           //默认缓冲区大小已经足够大
示例:
BufferedOutputStream bow=new BufferedOutputStream(new FileOutputStream("a.txt"));
//常用方法
 void flush() 
          刷新此缓冲的输出流。 
 void write(byte[] b, int off, int len) 
          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。 
 void write(int b) 
          将指定的字节写入此缓冲的输出流。 

3.字符输入流/输出流

Java中提供了其子类(便捷类)FileReader

1. 字符输入流=字节输入流+编码格式

public abstract class Reader extends Objectimplements Readable, Closeable
//Reader该类是抽象类,使用其子类InputStreamReader
//构造方法
InputStreamReader(InputStream in) 
          创建一个使用默认字符集的 InputStreamReader。(平台默认格式GBK)
InputStreamReader(InputStream in, Charset cs) 
          创建使用给定字符集的 InputStreamReader。
示例:
 InputStreamReader isr=new InputStreamReader(new FileInputStream("a.txt"));
便捷类:
FileReader fr=new FileReader("a.txt");

//常用方法
 void close() 
          关闭该流并释放与之关联的所有资源。 
 int read() 
          读取单个字符。 
 int read(char[] cbuf, int offset, int length) 
          将字符读入数组中的某一部分。 

2.字符输出流=字节输出流+编码格式

Java中提供了其子类(便捷类)FileWriter

public abstract class Writer extends Objectimplements Appendable, Closeable, Flushable
//Writer该类是抽象类,使用该类的子类OutputStreamWriter
//构造方法
public OutputStreamWriter(OutputStream out,Charset cs):
              创建一字符输出转换流对象,指定编码格式
示例:
 OutputStreamWriter bsw=new OutputStreamWriter(new FileOutputStream("a.tat"));
便捷类:
FileWriter fw=new FileWriter("a.txt");
//常用方法
 void close() 
          关闭此流,但要先刷新它。 
 void flush() 
          刷新该流的缓冲。 
 void write(char[] cbuf, int off, int len) 
          写入字符数组的某一部分。 
 void write(int c) 
          写入单个字符。 

4.字符缓冲区输入/输出流

1.输入流

//构造方法
BufferedReader(Reader in) 
          创建一个使用默认大小输入缓冲区的缓冲字符输入流。
示例:
BufferedReader br=new BufferedReader(new FileReader("a.txt"));
//常用方法
 int read() 
          读取单个字符。 
 int read(char[] cbuf, int off, int len) 
          将字符读入数组的某一部分。 
 String readLine() 
          读取一个文本行。
void close() 
          关闭该流并释放与之关联的所有资源。  
模板代码:
String line-null;
while((line=字符缓冲输入流对象.read()!=null){
System.out.println(line);
}

2.输出流

//构造方法
BufferedWriter(Writer out) 
          创建一个使用默认大小输出缓冲区的缓冲字符输出流。
示例:
BufferedWriter bw= new BufferedWriter(new FileWriter("a.txt"));
//常用方法
 void close() 
          关闭此流,但要先刷新它。 
 void flush() 
          刷新该流的缓冲。 
 void newLine() 
          写入一个行分隔符。 
 void write(char[] cbuf, int off, int len) 
          写入字符数组的某一部分。 
 void write(int c) 
          写入单个字符。 
 void write(String s, int off, int len) 
          写入字符串的某一部分。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java中的IO操作总结(四) 前面已经把java io的主要操作讲完了 这一节我们来说说关于java io的其他内容 Serializable序列化 实例1:对象的序列化 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; @SuppressWarnings("serial") //一个类要想实现序列化则必须实现Serializable接口 class Person implements Serializable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return "Name:" + this.name + ", Age:" + this.age; } } public class Demo { public static void main(String[] args) { String path = File.separator + "home" + File.separator + "siu" + File.separator + "work" + File.separator + "demo.txt"; Person p1 = new Person("zhangsan",12); Person p2 = new Person("lisi",14); //此处创建文件写入流的引用是要给ObjectOutputStream的构造函数玩儿 FileOutputStream fos = null; ObjectOutputStream oos = null; try { fos = new FileOutputStream(path); oos = new ObjectOutputStream(fos); //这里可以写入对象,也可以写入其他类型数据 oos.writeObject(p1); oos.writeObject(p2); } catch (IOException e) { e.printStackTrace(); } finally { try { oos.close(); } catch (IOException e) { e.printStackTrace(); } } } } 解压密码 www.jiangyea.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值