IO流

(标准输入输出流是字节输出流)

InputStream System.in/OutputStream System.out

//创建输入流对象

BufferedReader br = new BufferedReader(new FileReader("src/测试资料.txt"));

//创建输出流对象

OutputStream os=System.out;

String line=null;

while((line=br.readLine())!=null) {

         os.write(line.getBytes());

         os.write("\r\n".getBytes());

}

os.close();

br.close();

字符缓冲输入流读取数据到内存

字节标准输出流写出数据到磁盘

 

BufferedReader br = new BufferedReader(new FileReader("src/测试资料.txt"));

Writer wt=new OutputStreamWriter(System.out);

String line=null;

while((line = br.readLine())!=null) {

         wt.write(line);

         wt.write("\r\n");

}

wt.close();

br.close();

字符缓冲输入流读取数据到内存

字节输出流写出数据到磁盘

 

BufferedReader br=new BufferedReader(new FileReader("src/测试资料.txt"));

BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));

String line=null;

while((line=br.readLine())!=null) {

         bw.write(line);

         bw.newLine();

}

bw.close();

br.close();

字符缓冲输入流读取数据到内存

字符输出流写出数据到磁盘

 

//创建字节输入流

InputStream is=System.in;

//创建字符输出流

FileWriter fw=new FileWriter("a.txt");

//读写数据

byte[] data=new byte[1024];

int len=-1;

while((len=is.read(data))!=-1) {

         fw.write(new String(data,0,len));

         fw.flush();

}

//关闭资源

fw.close();

is.close();

字节标准输入流读取数据到内存

字符输出流写出数据到磁盘

 

//创建字节输入流

InputStreamReader isr=new InputStreamReader(System.in);

//创建字符输出流

FileWriter fw=new FileWriter("a.txt");

//读写数据

char[] data=new char[1024];

int len=-1;

while((len=isr.read(data))!=-1) {

         fw.write(data,0,len);

         fw.flush();

}

//关闭资源

fw.close();

isr.close();

字节输入流读取数据到内存

字符输出流写出数据到磁盘

打印流PrintStream

PrintWriter

可以自动换行

不能输出字节,可以输出其他任意类型

可以实现自动刷新(在调用println、printf、format的时候)

可以将字节输出流转化成字符输出流

PrintWriter pw=new PrintWriter(new FileWriter("a.txt"),true);//实现自动刷新println、printf、format

pw.write("hello");

pw.println(" world");

pw.print("!!!");

pw.close();

复制文件a.txt

//输入流

BufferedReader br=new BufferedReader(new FileReader("a.txt"));

//打印流

PrintWriter pw=new PrintWriter(new FileWriter("b.txt"),true);

//从内存写出数据到磁盘

String line=null;

while((line=br.readLine())!=null) {

         pw.println(line);

}

//关闭流

pw.close();

br.close();

对象流ObjectOutputStream、ObjectInputStream

存取对象

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("a.txt"));

Student stu=new Student("张三",16);

oos.writeObject(stu);

oos.close();

ObjectInputStream ois=new ObjectInputStream(new FileInputStream("a.txt"));

Student stu1 =(Student) ois.readObject();

System.out.println(stu1.toString());

ois.close();

需要对Student类实现序列化接口

存取对象集合

List<Student> list=new ArrayList<Student>();

Student stu1=new Student("张三",16);

Student stu2=new Student("李四",20);

list.add(stu1);

list.add(stu2);

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt"));

oos.writeObject(list);

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt"));

ArrayList<Student> li=(ArrayList<Student>) ois.readObject();

for (Student student : li) {

         System.out.println(student.toString());

}

oos.close();

解决序列化接口出现的黄色警告:实现对Student类序列化编号。

Properties类实现了Map接口

//创建属性列表对象

Properties pro=new Properties();

//添加映射关系

pro.put("name", "zhangsan");

pro.put("age", "15");

//遍历属性列表

//方式一

Set<Object> keySet = pro.keySet();

for(Object key:keySet) {

         Object value=pro.get(key);

         System.out.println(key+"="+value);

}

//方式二

Set<Entry<Object, Object>> entrySets = pro.entrySet();

for(Entry<Object,Object> entrySet:entrySets) {

         Object key=entrySet.getKey();

         Object value=entrySet.getValue();

         System.out.println(key+" "+value);

}

PropertiesIO流结合

与PrintWriter打印流结合

Properties pr=new Properties();

pr.setProperty("name", "lisi");

pr.setProperty("age", "18");

PrintWriter out=new PrintWriter("src/pro.properties");

pr.list(out);

out.close();

与FileReader字符输入流结合

Properties pro=new Properties();

FileReader fr=new FileReader("src/pro.properties");

pro.load(fr);

fr.close();

System.out.println(pro);

与FileWriter字符输出流结合

Properties pr=new Properties();

pr.setProperty("name", "lisi");

pr.setProperty("age", "18");

FileWriter fw=new FileWriter("src/p.properties");

pr.store(fw, "Hello World");

fw.close();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值