`

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面向对象之序列化机制及版本。

 

分享到:
评论

相关推荐

    Java课程设计报告书-学生版-1_I/O流与文件课程设计_

    Java的I/O流系统是基于面向对象的设计,提供了一种统一的方式来处理不同类型的输入和输出源。它将数据的流动抽象为流,流可以是来自键盘、磁盘文件、网络连接等的数据源或目标。I/O流分为字符流和字节流两大类,分别...

    基于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面向对象程序设计

    13. **I/O流**:Java的I/O流系统支持数据的输入和输出,包括字符流和字节流,以及过滤流、缓冲流、对象序列化等高级功能。 14. **反射**:反射机制允许程序在运行时动态获取类的信息(如类名、方法名等)并调用方法...

    Java面向对象精髓编程

    学习Java面向对象编程,需要不断地实践和探索。通过编写实际的项目,将理论知识与实际应用相结合,可以更好地理解和掌握这些概念。随着技能的提升,你将能够利用Java的强大功能解决复杂的问题,开发出高效、稳定的...

    Java面向对象程序设计课本例题源代码

    《Java面向对象程序设计》是Java编程学习的重要教材,作者张亦辉以其深入浅出的讲解方式,引领读者进入面向对象的世界。这份压缩包包含了书中各个章节的例题源代码,是学习和理解Java面向对象编程概念的宝贵资源。...

    Java面向对象程序设计(第二版)

    综上所述,《Java面向对象程序设计(第二版)》所涉及的知识点大致涵盖了面向对象编程的核心概念、类与对象、接口与抽象类、包的使用、异常处理机制、集合框架,以及I/O操作等。这些知识点构成了Java编程语言的基础...

    Java基础教程完整版

    Java学习系列(十一):Java面向对象之I/O流(下) 本章节主要讲解Java的I/O流,包括DataInputStream类、DataOutputStream类、ObjectInputStream类、ObjectOutputStream类等。 Java学习系列(十二):Java面向对象...

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

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

    java语言程序设计郑莉PPT学习教案.pptx

    从基本概念到深入应用,教案内容覆盖了Java I/O编程的方方面面,不仅有助于学习者掌握Java I/O流的操作,更能够帮助他们理解Java I/O流设计的深层含义。通过本教案的学习,程序员可以充分利用Java提供的I/O流功能,...

    实验9 Java输入输出流.doc

    I/O流在Java中被设计为一系列的类和接口,它们构成了一个层次结构,使得程序员可以方便地处理各种类型的输入输出操作。Java的I/O系统主要分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流...

    Java语言与面向对象程序设计(第2版)

    《Java语言与面向对象程序设计(第2版)》是一本深入探讨Java编程语言和面向对象设计理念的教材,特别适合初学者和有一定基础的学习者。本课程的重点在于理解和掌握Java的核心概念,以及如何利用这些概念进行高效的...

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

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

    Java面向对象程序设计 例子源代码

    Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程(OOP)的理念,强调将现实世界的问题抽象为类和对象,从而更高效、更直观地进行软件开发。这个压缩包包含了一系列的Java源代码示例,由...

    Java面向对象程序设计.pptx

    Java面向对象程序设计 Java面向对象程序设计是一本由莫雷利、王尔德合著的图书,出版于2008年 oleh 清华大学出版社。该书全面系统地讲述了Java语言的面向对象程序设计,涵盖了Java语言的基础知识、基本语法、编程...

    Java的I_O处理技术探析.pdf

    Java的I/O处理技术有很多优点,例如简单易学、面向对象、健壮的、安全的、解释的、与平台无关、多线程、动态的语言等。 本文探析了Java的I/O处理技术,旨在提供一个深入理解Java I/O处理技术的基础,帮助开发者更好...

    Java语言与面向对象程序设计

    Java标准版(Java SE)提供了一套丰富的类库,包括I/O流、集合框架、网络编程、多线程、异常处理等。例如,集合框架(如List, Set, Map)提供了存储和操作对象的有效方式,而线程机制使得Java能够实现并发执行,提高...

    java 面向对象程序设计全部课件各部分重点内容

    Java面向对象程序设计是软件开发中的核心概念,它基于面向对象的思想,使代码更易于理解和维护。本课程全面覆盖了Java编程的关键知识点,包括基础语法、面向对象特性、Applet应用、图形用户界面(GUI)设计、异常...

Global site tag (gtag.js) - Google Analytics