今天接着昨天的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的I/O流系统是基于面向对象的设计,提供了一种统一的方式来处理不同类型的输入和输出源。它将数据的流动抽象为流,流可以是来自键盘、磁盘文件、网络连接等的数据源或目标。I/O流分为字符流和字节流两大类,分别...
本系统是基于JAVA开发平台,运用Socket网络编程,I/O文件流,线程,Swing图形界面等技术,实现的一套标准化考试系统。通过该系统可以完成多个科目的标准化考试工作。 该系统共分为三个模块:考生客户端,服务器端和...
Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...
13. **I/O流**:Java的I/O流系统支持数据的输入和输出,包括字符流和字节流,以及过滤流、缓冲流、对象序列化等高级功能。 14. **反射**:反射机制允许程序在运行时动态获取类的信息(如类名、方法名等)并调用方法...
学习Java面向对象编程,需要不断地实践和探索。通过编写实际的项目,将理论知识与实际应用相结合,可以更好地理解和掌握这些概念。随着技能的提升,你将能够利用Java的强大功能解决复杂的问题,开发出高效、稳定的...
《Java面向对象程序设计》是Java编程学习的重要教材,作者张亦辉以其深入浅出的讲解方式,引领读者进入面向对象的世界。这份压缩包包含了书中各个章节的例题源代码,是学习和理解Java面向对象编程概念的宝贵资源。...
综上所述,《Java面向对象程序设计(第二版)》所涉及的知识点大致涵盖了面向对象编程的核心概念、类与对象、接口与抽象类、包的使用、异常处理机制、集合框架,以及I/O操作等。这些知识点构成了Java编程语言的基础...
Java学习系列(十一):Java面向对象之I/O流(下) 本章节主要讲解Java的I/O流,包括DataInputStream类、DataOutputStream类、ObjectInputStream类、ObjectOutputStream类等。 Java学习系列(十二):Java面向对象...
Java知识点总结大全(五) -- io流,关注后面会分享面向对象,io,集合,多线程,网络,sql的总结
从基本概念到深入应用,教案内容覆盖了Java I/O编程的方方面面,不仅有助于学习者掌握Java I/O流的操作,更能够帮助他们理解Java I/O流设计的深层含义。通过本教案的学习,程序员可以充分利用Java提供的I/O流功能,...
I/O流在Java中被设计为一系列的类和接口,它们构成了一个层次结构,使得程序员可以方便地处理各种类型的输入输出操作。Java的I/O系统主要分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流...
《Java语言与面向对象程序设计(第2版)》是一本深入探讨Java编程语言和面向对象设计理念的教材,特别适合初学者和有一定基础的学习者。本课程的重点在于理解和掌握Java的核心概念,以及如何利用这些概念进行高效的...
全书共12章,内容包括面向对象程序设计概述,Java语言概述,Java语言基础,类、对象和接口,包和Java基础类,Java异常处理,Java图形用户界面设计,Applet及其应用,I/O系统,多线程编程,多媒体编程和网络编程等。
Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程(OOP)的理念,强调将现实世界的问题抽象为类和对象,从而更高效、更直观地进行软件开发。这个压缩包包含了一系列的Java源代码示例,由...
Java面向对象程序设计 Java面向对象程序设计是一本由莫雷利、王尔德合著的图书,出版于2008年 oleh 清华大学出版社。该书全面系统地讲述了Java语言的面向对象程序设计,涵盖了Java语言的基础知识、基本语法、编程...
Java的I/O处理技术有很多优点,例如简单易学、面向对象、健壮的、安全的、解释的、与平台无关、多线程、动态的语言等。 本文探析了Java的I/O处理技术,旨在提供一个深入理解Java I/O处理技术的基础,帮助开发者更好...
Java标准版(Java SE)提供了一套丰富的类库,包括I/O流、集合框架、网络编程、多线程、异常处理等。例如,集合框架(如List, Set, Map)提供了存储和操作对象的有效方式,而线程机制使得Java能够实现并发执行,提高...
Java面向对象程序设计是软件开发中的核心概念,它基于面向对象的思想,使代码更易于理解和维护。本课程全面覆盖了Java编程的关键知识点,包括基础语法、面向对象特性、Applet应用、图形用户界面(GUI)设计、异常...