`

Java学习系列(十一)Java面向对象之I/O流(下)

 
阅读更多

今天接着昨天的IO流讲,内容可能会比较多。

DataInputStream与DataOutputStream
它们是建立在已有的IO的基础上的两个特殊的过滤流。规律:它们只是增加了一些特定的方法读取特定的数据。

举例说明1:

public class Test {
	public static void main(String[] args) {
		DataOutputStream dos = null;
		try {
			dos = new DataOutputStream(new FileOutputStream("F:/price.txt"));
			dos.writeDouble(243.21);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				dos.close();
			} catch (IOException e2) {
				e2.printStackTrace();
			}
		}
	}
}

举例说明2:

public class Test {
	public static void main(String[] args) {
		DataInputStream dis = null;
		try {
			dis = new DataInputStream(new FileInputStream("F:/price.txt"));
			System.out.println(dis.readDouble());
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				dis.close();
			} catch (IOException e2) {
				e2.printStackTrace();
			}
		}
	}
}

 

 

节点流(System.in是读取键盘输入,可以换成new FileInputStream("f:/1.txt")读文件,也可以换成读网络(Socket)--以后会讲)包装成过滤流编程:

public class Test {
	public static void main(String[] args) {
		BufferedReader br = null;
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			String line = null;
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}


		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

Java虚拟机读取其他进程的数据
Java如何启动其他进程:Runtime实例.exec(String command)
举例说明:

 

 

public class Test {
	public static void main(String[] args) {
		Process process = null;
		BufferedReader br = null;
		try {
			process = Runtime.getRuntime().exec("javac.exe");
			br = new BufferedReader(new InputStreamReader(
					process.getErrorStream()));
			String line = null;
			System.out.println("编译出错,错误信息如下~~~~~");
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e2) {
				e2.printStackTrace();
			}
		}
	}
}

 

 

 

RandomAccessFile ---随机(任意)访问文件。 --创建时需要指定r/w模式。
Random --想访问文件的哪个点,就访问文件的哪个点(任意)。
特征:既可读、又可写、还可追加,不会覆盖原有文件内容。但它只能访问文件。
举例说明1:

 

public class Test {
	public static void main(String[] args) throws IOException {
		RandomAccessFile raf = new RandomAccessFile("f:/1.txt", "rw");
		byte[] buff = new byte[1024];
		int hasRead = -1;
		while ((hasRead = raf.read(buff)) > 0) {
			System.out.println(new String(buff, 0, hasRead));
		}
		raf.close();
	}
}


举例说明2:

 

 

/**
 * @author lhy
 * @description 向文件中的指定位置插入内容
 */
public class Test {
	public static void main(String[] args) {
		RandomAccessFile raf = null;
		try {
			raf = new RandomAccessFile("f:/1.txt", "rw");
			insertContent(raf, 100, "Java面向对象之I/O流之RandomAccessFile的使用");
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				raf.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static void insertContent(RandomAccessFile raf, int pos,
			String content) {
		ByteArrayOutputStream bos = null;
		try {
			bos = new ByteArrayOutputStream();
			raf.seek(pos);// 把记录指针移到要插入的地方
			byte[] buff = new byte[1024];
			int hasRead = -1;
			// 将raf从pos位置开始、直到结尾所有的内容
			while ((hasRead = raf.read(buff)) > 0) {
				bos.write(buff, 0, hasRead);// 将读取的数据(从pos位置开始)放入bos中
			}
			raf.seek(pos);// 再次将记录指针移到要插入的地方
			raf.write(content.getBytes()); // 写入要插入的内容
			raf.write(bos.toByteArray()); // 写入之前保存的内容

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				bos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

 

 

结束语

有关Java中的IO流类比较多,而且方法大同小异,大家有空可以多查查API文档。今天就讲到这,明天开始讲Java面向对象之序列化机制及版本。

 

分享到:
评论

相关推荐

    基于I/O、多线程、GUI的标准考试系统v1.0(JAVA实现)

    本系统是基于JAVA开发平台,运用Socket网络编程,I/O文件流,线程,Swing图形界面等技术,实现的一套标准化考试系统。通过该系统可以完成多个科目的标准化考试工作。 该系统共分为三个模块:考生客户端,服务器端和...

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...

    Java知识点总结大全(五) -- IO流.xmind

    Java知识点总结大全(五) -- io流,关注后面会分享面向对象,io,集合,多线程,网络,sql的总结

    Java面向对象程序设计:第2版:英文

    全书共12章,内容包括面向对象程序设计概述,Java语言概述,Java语言基础,类、对象和接口,包和Java基础类,Java异常处理,Java图形用户界面设计,Applet及其应用,I/O系统,多线程编程,多媒体编程和网络编程等。

    java面向对象File (I O)

    操作文件或目录的属性,读写文本文件,二进制文件的读写

    java面向对象

    《Java面向对象程序设计》通过丰富、实用的精选实例系统地介绍了使用Java语言进行面向对象程序设计的方法和技术,注重提高读者运用Java语言和面向对象技术解决实际问题的能力。全书共12章,内容包括面向对象程序设计...

    Java 面向对象(继承、多态、接口、异常).ppt

    掌握类的继承、方法重写、super关键字的使用、final关键字、抽象类和接口、多态的使用以及异常的处理方式 熟悉面向对象继承和多态的概念

    Java程序设计与开发源代码

    本书以Java语言面向对象的编程理念为出发点,循序渐进地介绍Java语言...通过融入Java面向对象的编程思想,使读者在学习理论知识的同时,初步掌握面向对象的系统分析、设计与开发能力,为大型软件的设计和开发奠定基础。

    java学习文档(快速学习-非常使用)

    Day1 一、 从面向过程编程到面向对象编程的思维转变 二、 什么是字节码和虚拟机: 三、 环境变量的设置 四、 kate工具的使用 五、 我们的第一个Java程序 ...一.I/O 流(java 如何实现与外界数据的交流)

    JAVA SE 开发手册.CHM

    8、JAVA面向对象之函数、堆和栈、访问修饰符 9、JAVA面向对象关键字 10、JAVA面向对象抽象类abstract 11、JAVA面向对象接口interface 12、JAVA面向对象之内部类、匿名内部类 13、JAVA集合框架之简介 14、JAVA...

    java 坦克大战 (只是点线程面向对象和流)

    这是一个坦克大战的小游戏,虽然是个游戏,但是他对于初学java的人来说是个很好的练习运用知识的地方。它涵盖了java很多种的方面如 java线程、javaI/O流、java集合、最重要的是java面向对象的思想。

    基于 Java Swing + 人脸识别编写的学校考试系统源代码Java基础大作业

    几乎涵盖了 Java 基础面向对象,封装继承多态,I/O 流,多线程,网络,数据库的所有知识 项目用到的主要技术 利用阿里云的短信API服务提供登录注册时的短信发送 利用 Java Mail 实现发送邮件 用户密码采用 MD5 加盐...

    Java实训项目——嗖嗖移动大厅(详细注解)

    Java实训项目,综合面向对象、I/O、实用类、集合框架等知识点

    精通Java:JDK、数据库系统开发Web开发(实例代码)

    第6章 Java面向对象程序设计(下) 第7章 Java异常处理机制 第8章 Java反射机制 第9章 数据结构与集合类 第3篇 图形用户界面 第10章 Java Swing(上) 第11章 Java Swing(下) 第12章 Applet网页小程序 第13章 图形...

    java_diary_18.rar_JFC_swing_反射机制_国际化 java

    Day03:面向对象 Day04:修饰符与类权限 Day05:类与接口 Day06:集合类型 Day07:反射机制与内部类 Day08:异常与Swing图形界面 Day09:swing图形界面与AWT事件模型 Day10:JFC基础类库(具体类查看API) Day11:多...

    JAVA清华大学教程

    ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外的处理 ◇4.3 自定义例外类的使用 ◇4.4 I/O 流概述 ◇4.5 文件处理 ◇4.6 过滤流 ◇4.7 字符流的处理 ◇4.8 对象的串行化 ◇...

    编程课件+Java系列课程+PPT课件+Java教学

    Java是一种跨平台、面向对象的编程语言,广泛应用于企业级应用、移动应用、游戏开发等领域。本教程为初学者设计,旨在快速掌握Java编程的核心概念。 一、Java入门 - Java概述:介绍Java的历史、特点和应用领域。 -...

    《Java基础入门(第3版)》(Java):课后答案-docx文档

    1.内容概要: 包括《Java基础入门(第3版)》的课后习题答案 2.适用人群: Java初学者 ...(4)学习常用的Java库和框架:了解Java的常用库和框架,如集合、I/O流、多线程等,可以帮助你更好地编写代码。

    Java学习路线.pdf

    面向对象编程:Java 是一门面向对象的编程语言,因此需要学习面向对象的概念、封装、继承、多态等。同时还需学习类、对象的创建和使用、方法的定义和调用等知识。 核心类库:Java 提供了丰富的核心类库,包括集合...

    清华大学JAVA教程

    这是清华大学的一套JAVA教程,包括详尽的例子、课后习题与解答、相关计算机英语词汇,就课程...同时Java语言是一门面向对象的语言,通过学习可以掌握用面向对象进行编程的思想和实践,使学生成为一名合格的Java程序员。

Global site tag (gtag.js) - Google Analytics