Java初级培训笔记------IO流(2)

原创 2015年08月23日 20:11:03

字符流理念上与字节流相同,区别就在于字符流每次读取的单位是字符,也就是两个字节,具体结构图参见Java初级培训笔记------IO流(1)

FileWriter 与FileReader;BufferedReader与BufferedWriter

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			File f=new File("E:/test/a.txt");
			if(!f.exists()){
				f.createNewFile();
			}
			FileWriter fw=new FileWriter(f);
			FileReader fr=new FileReader(f);
			String str="好好学习,天天向上";
			fw.write(str);//FileWriter的构造方法中直接提供了传入字符串的方法,可以直接写入字符串
			char[] c=str.toCharArray();
			fw.write(c);//此处是传入一个char数组,这一点跟字节流的传入byte数组是一样的  byte数组一次读一个字节  char数组一次读两个字节
			fw.flush();//刷新
			BufferedWriter bw=new BufferedWriter(fw);
			bw.write(str);
			bw.flush();
			bw.close();
			fw.close();//关闭
			//读
			//方式1
			int len;
			while((len=fr.read())!=-1){
				System.out.print((char)len);
			}
			//方式2
			char[] ch=new char[2];
			while((len=fr.read(ch))!=-1){
				System.out.print(String.valueOf(ch,0,len)+"  ");//一次读两个字符,加后边的空格就是为了体现这一特点
			}
			//方式3
			while((len=fr.read(ch,0,ch.length))!=-1){//方法重载  参数不同而已
				System.out.print(String.valueOf(ch)+"*");//一次读两个字符
			}
			//方式4
			BufferedReader br=new BufferedReader(fr);
			String a="";
			while((a=br.readLine())!=null){
				System.out.println(a);
			}
			br.close();
			fr.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

写入读出方式都是任选其一

BufferedReader与BufferedWriter将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。 可以减少数据的读写次数,提高数据的读写效率(实质是将需要读写的数据存在一个char类型的数组中)字节流也是,所以要重点掌握,比较常用。

了解:Object对象流:
ObjectOutputStream对象的序列化:将对象以二进制的形式永久性保存,或者以二进制的形式在网络传输
ObjectInputStream对象的反序列化:将二进制永久性保存的对象或者传输的对象,还原Java中临时对象
他的主要目标就是将对象永久保存起来,比如说存到某个txt文档中,当某一天用到的时候再通过反序列化调用

<span style="white-space:pre">		</span>News n = new News("北京将举办冬奥会");//创建对象  news类里只有新闻名称一个属性
		
		//对象的序列化
		try{
			FileOutputStream fos = new FileOutputStream(
					new File("e:/io/a.txt"));
			
			//创建对象输入流对象
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			
			//将n对象序列化,将n写入e:/io/a.txt
			oos.writeBoolean(true);
			
			//Serializable标识性接口,只是说明该类的对象是可以序列化
			oos.writeObject(n);	
			oos.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
<pre name="code" class="java">//完成对象的反序列化:将对象以二进制形式读入程序,并还原。

		try {
			FileInputStream fis = new FileInputStream(new File("e:/io/a.txt"));
			
			//创建对象输入流对象,完成对象的反序列化
			ObjectInputStream ois = new ObjectInputStream(fis);
			System.out.println(ois.readBoolean());
			Object obj=ois.readObject();
			System.out.println("obj="+obj);
			News ns=(News)obj;//强转
			System.out.println(ns.getDate());
		} catch (Exception e) {
			e.printStackTrace();

		}

了解就行

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java初级培训笔记------IO流(1)

所谓的IO流就是输入输出流(即input,output),或者说是读写流(即read,write),完成应用程序和外部数据源之间的,数据交互。 比如说现在Eclipse作为一个应用程序,新建的字符串想...
  • MiracleWW
  • MiracleWW
  • 2015年08月23日 16:21
  • 469

JAVA学习笔记——IO流

1.File类:表示文件和目录路径名的抽象表示形式 (1)构造方法   File(String pathname):根据一个路径得到File对象。   File(String parent, S...
  • u012990327
  • u012990327
  • 2018年01月23日 00:29
  • 15

java要点笔记——IO流

------- android培训、java培训、期待与您交流! ---------- IO流 day2001-IO流(输入流&输出流) 1、IO(Input  Output)流:IO流用来处理设备...
  • u013114489
  • u013114489
  • 2015年07月22日 11:32
  • 497

Java初级笔记_IO流_2

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、IO     概述           操作数据的工具 IO流,即数据流,数据像水流...
  • fyg408224345
  • fyg408224345
  • 2015年07月05日 18:22
  • 179

JAVA IO(摘抄毕向东老师笔记)

常见流与对象 文件类:       File 打印流           PrintStream    PrintWriter 管道流           PipInputteStream   ...
  • moguangxue
  • moguangxue
  • 2012年08月23日 09:46
  • 2637

java io流最详解

初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见...
  • sinat_22797429
  • sinat_22797429
  • 2016年11月13日 20:31
  • 1037

java基础复习(集合、泛型、IO流、多线程、Junit 、内省 、Properties、 路径问题)

集合---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, 查找快, 增删慢 ...
  • guanhang89
  • guanhang89
  • 2016年04月25日 11:29
  • 4318

Java中常见的IO流及其使用

Java中常见的IO流的介绍及使用: ByteArrayInputStream & ByteArrayOutputStream FileInputStream & FileOutputStream P...
  • sunqunsunqun
  • sunqunsunqun
  • 2015年07月09日 19:54
  • 4117

java IO流学习总结

Java中的流,可以从不同的角度进行分类。     按流的方向分:输入流和输出流。     按处理数据单位分:字节流和字符流。     按实现功能分:节点流和处理流。       输出流:     ...
  • du_minchao
  • du_minchao
  • 2015年10月11日 12:35
  • 16142

Java中IO流学习总结

Java中IO流学习总结一.IO流中的结构 字符流:顾名思义,该流只能处理字符,但处理字符速度很快 字节流:可以处理所有以bit为单位储存的文件,也就是说可以处理所有的文件,但是在处理字符上的速度不如...
  • Yue_Chen
  • Yue_Chen
  • 2017年05月26日 18:00
  • 386
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java初级培训笔记------IO流(2)
举报原因:
原因补充:

(最多只允许输入30个字)