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初级培训笔记------容器 (2)

容器的应用: List因为说他的三个实现类的继承跟实现是差不多的,所以说讲通了一个,再讲一下他们不同的地方就行了 说一下Vector的用法,他的底层实现的是数组,并且定义了初始大小为10,并且他是线程...

Java初级培训笔记------反射

什么是反射:反射就是通过.class文件将该class文件封装为一个类(Class)的对象剖析.java文件,在被编译后,运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都...

Java初级培训笔记------容器 (1)

先来了解一下什么是容器,而要想了解容器,那么 你必须 先知道数组 ,在java基础中 数组是一个很重要的部分,那么数组的定义是什么:用于存储相同数据类型的有序的集合,并且数组的大小在定义的时候就已经确...

嵌入式软件开发培训笔记——java第六天(IO、网络编程、反射与JNI)

一、Java IO 1、java中流的分类     按照流向分为输入流和输出流                            基类:InputStream    OutputStream ...

Java培训-IO流补充

主要是IO流中ObjectInputStream和ObjectOutputStream的对象流,DataInputStream和DataOutputStream数据流和RandomAccessFile...

Java学习笔记之IO流

  • 2016年08月11日 07:36
  • 15KB
  • 下载

java IO流学习笔记

  • 2016年12月12日 21:59
  • 14KB
  • 下载

java.io流的初级应用

package MyProject1; /* * *读取文本文件,每次读取一个字节并输出 * */ import java.io.File; import java.io.FileInput...

[JAVA · 初级]:20.IO流技术

IO流技术的使用,使得我们的工作更为顺畅,无论是从物理存储的角度来看待,还是从逻辑思维中来理解,都变得很容易接受。 这里只是简单地介绍了IO流技术的一部分,很多细节需要到项目中去实践,才能够不断地有新...

Java初级--IO流(上)

8.File类      1)File类是IO包中唯一代表磁盘文件信息的类,而不是文件中的内容。      2)File类定义了一些与平台无关的方法来操纵文件,例如,创建、删除文件和重命名文件。   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java初级培训笔记------IO流(2)
举报原因:
原因补充:

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