注意事项 在使用Java字节流处理文件和数据时,有一些重要的注意事项,这些注意事项可以帮助你避免常见的问题和错误。以下是一些需要特别关注的事项: 1. 关闭流 不要忘记关闭已打开的流。...newException.initCause(e); throw newException; } 总之,了解并遵循这些注意事项可以帮助你更安全地处理Java字节流,减少错误和问题,确保文件和数据处理的稳定性和可靠性...字节流是Java中强大而灵活的工具,但需要小心使用,以确保它们正确地工作。 总结 通过本篇博客,我们详细介绍了Java字节流的基础知识和应用。...这些类是Java文件和数据处理的重要组成部分,为你提供了强大的工具来处理二进制数据。 虽然本文已经涵盖了许多内容,但Java字节流还有更多高级特性和用法,需要根据具体需求进行进一步学习和探索。...希望这篇文章能够帮助初学者更好地理解和使用Java字节流,为你的编程之路提供有力的支持。
本文将从基础概念开始,深入探讨Java字节流的使用,旨在帮助初学者理解和掌握这一重要主题。 什么是字节流? 在Java中,字节流是以字节为单位进行输入和输出操作的一种流。...使用 DataInputStream 和 DataOutputStream DataInputStream 和 DataOutputStream 是用于读写基本数据类型(如整数、浮点数、布尔值等)的字节流...希望这些信息能够帮助你更好地理解和应用Java字节流。 注意事项 在使用Java字节流进行文件操作时,有一些注意事项需要考虑,以确保程序的正确性和可靠性。...根据具体的应用场景和需求,你可能需要进一步考虑其他因素,以确保文件操作的稳定性和可靠性。 总结 本文介绍了Java字节流的基本概念和常见用法,包括字节输入流和输出流的操作、文件读写以及异常处理。...通过学习和实践,你可以更好地理解和运用字节流,处理各种二进制数据,从而提升Java编程的技能和效率。希望本文能够帮助你更好地掌握Java字节流的知识。
FileInputStream/FileOutputStream: 输入源和输出目标是文件的流。...需要说明的是文件输出流FileOutputStream,你可能会认为,调用flush会强制确保数据保存到硬盘上,但实际上不是这样,FileOutputStream没有缓冲,没有重写flush,调用flush...注意与OutputStream的flush方法相区别,flush只能将应用程序缓冲的数据写到操作系统,sync则确保数据写到硬盘,不过一般情况下,我们并不需要手工调用它,只要操作系统和硬件设备没问题,数据迟早会写入...怎么解决这个问题呢?方法是将文件流包装到缓冲流中。...FileInputStream/FileOutputStream:流的源和目的地是文件。
但是我们可以想到,它一定是在打下mark标记的地方,使用字节数组记录下接下来的路径上的所有字节数据,直到你使用了reset方法,取出字节数组中的数据供你读取(实际上也不是一种能够重复读,只是用字节数组记录下这一路上的数据而已...但是,他们都是抽象类,想要实现具体的功能还是需要依赖他们的子类来实现,例如:FileInputStream/FileOutputStream等。...toByteArray和toString则会将内置数组转换成指定类型返回。 下面我们利用他们解决刚开始说的效率问题。...DataOutputStream da = new DataOutputStream(new FileOutputStream("hello.txt")); da.writeInt(11...DataInputStream完成的就是读取的操作,基本和DataOutputStream 的操作是类似的,是一个逆操作。
IO File类 作用 访问和操作文件的类 创建方式 File file = new File( String pathname ); 常用方法 boolean exists( )//判断文件是否存在...inputStream类 常用方法 int read( )//一个字节一个字节的读取文件中的数据,返回的是读取字节处理成int的数值(需要用char强转),如果读完就是-1; int read(byte...个字节写入文件的输出流中,参数off代表着从数组下标off开始,参数len表示最终写入的字节个数 void close()// FileOutputStream类 构造方法 FileOutputStream...=null) out.close(); } catch (IOException e) { e.printStackTrace(); } } } DataOutputStream...类 构造方法 FileOutputStream outFile=new FileOutputStream("C:\\temp.class"); DataOutputStream out=new DataOutputStream
本篇博客将详细介绍Java中的字节流和字符流,以及它们的使用方法,帮助初学者更好地理解和运用这些流来处理文件和数据。 字节流和字符流的区别 在开始之前,我们需要了解字节流和字符流的基本区别。...字节流操作 使用FileInputStream和FileOutputStream FileInputStream和FileOutputStream是最基本的字节流,用于读取和写入文件。...和DataOutputStream DataInputStream和DataOutputStream用于读写基本数据类型(如整数、浮点数)和字符串。...] args) { try (DataOutputStream output = new DataOutputStream(new FileOutputStream("data.txt"...清理资源 在不再需要流时,确保调用close()方法释放资源。否则,可能会导致资源泄漏和性能下降。 遵循这些注意事项可以帮助你更好地编写和管理Java中的字节字符流代码。
数据流DataInputStream和DataOutputStream介绍数据流:用来操作基本数据类型和字符串的DataInputStream:将文件中存储的基本数据类型和字符串写入内存的变量中DataOutputStream...:将内存中的基本数据类型和字符串的变量写出文件中利用DataOutputStream向外写出变量:public class Test01 { //这是一个main方法,是程序的入口: public...static void main(String[] args) throws IOException { //DataOutputStream: 将内存中的基本数据类型和字符串的变量...写出 文件中 /*File f = new File("d:\\Demo2.txt"); FileOutputStream fos = new FileOutputStream...: public static void main(String[] args) throws IOException { //DataInputStream:将文件中存储的基本数据类型和字符串
(IOException e) { e.printStackTrace(); } } } 字符流 Reader字符输入流 Writer字符输出流 专门用于字符的形式读取和写入数据...e) { e.printStackTrace(); } } } 数据流 使用数据流的writeUTF()和readUTF() 可以进行数据的格式化顺序读写...如本例,通过DataOutputStream 向文件顺序写出布尔值,整数和字符串。...注: 要用DataInputStream 读取一个文件,这个文件必须是由DataOutputStream 写出的,否则会出现EOFException,因为DataOutputStream 在写出的时候会做一些特殊标记...fos = new FileOutputStream(f); DataOutputStream dos = new DataOutputStream(fos);
当程序需要从某个数据源读入数据的时候,就会开启一个输入流,数据源可以是文件、内存或网络等等。...即节点流是直接操作文件,网络等的流,例如FileInputStream和FileOutputStream,他们直接从文件中读取或往文件中写入字节流。...例如BufferedInputStream和BufferedOutputStream,使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率,以及DataInputStream和DataOutputStream...DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,需要“套接”在InputStream和OutputStream类型的节点流之上...outputStream = new DataOutputStream( new FileOutputStream(new File("E:/4.pptx")));
本文将深入介绍Java的输入输出相关知识,包括InputStream、OutputStream、Reader和Writer等流的使用,并通过实例演示其在实际应用中的运用。...缓冲流的优化为了提高I/O性能,Java提供了缓冲流(Buffered Stream)来对原始的字节流和字符流进行包装。...下面是一个使用DataInputStream和DataOutputStream的示例:使用DataInputStream读取数据import java.io.DataInputStream;import...e) { e.printStackTrace(); } }}这两个示例展示了如何使用DataInputStream和DataOutputStream读写基本数据类型...小结与建议了解流的概念: 理解字节流和字符流的区别,以及流的分类和用途。
IO流 JAVA流式输入输出原理:可以想象成一根管道怼到文件上,另一端是我们程序,然后流的输入输出都是按照程序本身作为第一人称说明的。...转换流 InputStreamReader 和 OutputStreamWriter 用于字节数据到字符数据之间的转换。 InputStreamReader 需要和 InputStream 套接。...InputStream 和 OutputStream,它属于处理流,需要分别套接在 InputStream 和 OutputStream 类型的节点流上。...DataInputStream 和 DataOutputStream 提供了可以存取与机器无关的 Java 原始类型数据(如:int,double 等)的方法。...DataInputStream 和 DataOutputStream 的构造方法为: DataInputStream (InputStream in) DataOutputStream (OutputStream
流过滤器 FileInputStream 和 FileOutputStream只能实现字节的读写, 如果需要写(读)入基本类型的数据, 就需要用到流过滤器....写(读)如基本数据类型 DataOutputStream ( DataInputStream ) , 这两者是二进制写(读) DataOutputStream out = new DataOutputStream...=null){ System.out.println(line); } InputStreamReader 和 OutputStreamWriter起到了桥梁的作用, 将字符流和字节流建立了联系...在他们的构造器中可以添加第二个参数以指定编码方式(如 utf-8 ) 有更加方便的文件读写: FileReader 和 FileWriter, 但很少用....在 InputStream 或者 Reader 的基础上建立一个 Scanner 对象, 就可以从流中的文本解析出各种基本类型.
它们提供了方法将字节写入到文件和将数据以字节形式从文件中读取出来。 一般情形下,文件字节流操作遵循以下几个步骤: (1)使用File类绑定一个文件。 (2)把File对象绑定到流对象上。...,分别为DataInputStream 和 DataOutputStream。...DataOutputStream 例 将格式化的订单数据写入到文件 import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream...+ "order.txt"); // 第2步、通过子类实例化父类对象 DataOutputStream dos = new DataOutputStream(new FileOutputStream...合并流的功能由SequenceInputStream完成。 需要稍微留意的是,由前面的字节流族谱图,可以得知并没有对应的OutputStream。
list() 返回文件夹下的所有文件名和目录名 listFiles() 返回当前目录下所有的file对象包含文件和目录 mkdir() 创建指定路径的目录 如果指定的路径是一个目录且不存在的时候可以通过...,不再是具体的数据了,读不到的时候还是返回-1,用数组接收读取的数据时要注意,在读取的过程中最后一次的时候有可能要余留上一次读取的数据,在这一次又将数组读不满时,就会出现结果溢出,解决方案还是使用String..."); //打印流的创建需要一个FileOutputStream对象 PrintStream printStream=new PrintStream(outputStream...,使用DataInputStream进行写入的数据不是为了给别人看,而是为了程序的存储和读取,使用数据存储的文件类型一般.bat二进制形式的文件 DataInputStream 数据输入流 DataOutputStream...字符串 writeUTF(字符串) 注意的是: 1、一下情况下DataInputStream和DataOutputStream要一起配合使用。 2、存入的顺序,个数,类型在读取的时候要一致。
字符输出和字节输出 小师妹:F师兄,上次你的IO讲到了一半,文件读取是基本上讲完了,但是文件的写入还没有讲,什么时候给小师妹我再科普科普?...Writer中最最常用的就是FileWriter和BufferedWriter,我们看下一个最基本写入的例子: public void useBufferedWriter() throws IOException...4个,char需要占用2个字节。这样强制从int转换到char会有精度丢失的问题,只会保留低位的2个字节的数据,高位的两个字节的数据会被丢弃,这个需要在使用中注意。...第一个write方法传入int参数也是需要进行截取的,不过这次是从int转换成byte。...可以的,使用DataOutputStream就可以做到: public void useDataOutPutStream() throws IOException {
Reader 和 Writer: 用于读取和写入字符流,适用于文本文件的读写。...DataInputStream 和 DataOutputStream: 用于读写基本数据类型。...dataOutput = new DataOutputStream(new FileOutputStream("data.dat"))) { // 使用 dataInput 和 dataOutput...outputStream = new FileOutputStream("copy_image.jpg")) { // 对图像文件进行读取和复制 } catch (IOException e)...熟练掌握I/O流的使用将帮助你更好地处理数据输入和输出,提升程序的功能和性能。通过不断实践和深入学习,可以在 Java 编程中熟练地使用各种类型的 I/O 流,从而为应用程序增添更多的功能和价值。
} } } } } 三、FileWriter写数据基本操作 /** * 1.文件不存在则新建 * 2.可以在创建文件流的时候指定是否在源文件内容上追加或覆盖...,直接使用printf()方法就可以完成操作,但是在进行格式化输出的时候需要指定其输出的数据类型。...name = "zmx"; ps.println(name); ps.close(); } } 九、数据流 /** * 数据流 * DataInputSteam和DataOutputStream...); FileOutputStream fos = new FileOutputStream(file); DataOutputStream dos = new DataOutputStream...:用于写入对象 的信息和读取对象的信息。
所有Java I / O流都是单向的(除了RandomAccessFile,稍后将讨论)。 如果你的程序需要执行输入和输出,则必须打开两个流 - 输入流和输出流。...[读取“字符集和编码方案”]。 因此,Java需要区分用于处理原始字节或二进制数据的基于字节的I / O以及用于处理由字符组成的文本的基于字符的I / O。 ?...这可以防止严重的资源泄漏。 不幸的是,close()方法也抛出一个IOException,并且需要包含在一个嵌套的try-catch语句中,如下所示。 这使得代码变得很丑陋。...我们需要选择一个适当的具体子类来建立与物理设备的连接。 例如,可以实例化FileInputStream或FileOutputStream以建立到物理磁盘文件的流。...new FileOutputStream("out.dat"))); DataOutputStream实现DataOutput接口,它提供写入格式化的原始数据和String的方法。
JDK 中,有两大类IO流即字节流和字符流(包括输入和输出),这些流类中有些是带有缓冲区功能的有些是没有的。...fos = new FileOutputStream(file); DataOutputStream dos = new DataOutputStream(fos);...DataOutputStream 类的 flush() 方法效仿其父类 FilterOutputStream 的做法,如下: public void flush() throws IOException...第一个例子调用的 write 方法本质是调用了 native 实现的 wirte 方法,该方法直接将数据写入到了文件当中不需要调用 flush 方法,有兴趣的可以去查看一下 JDK 中的源码。...所以,一般使用字符流之后需要调用一下 flush() 或者 close() 方法。
java.io 包下需要掌握的流有 16 个,本篇内容包括:java.io包下需要掌握的流、Java IO 案例。.../** * 使用 FileInputStream 和 FileOutputStream 完成对文件的复制 */ public class CopyTest01 { public static...; import java.io.IOException; /** * java.io.DataOutputStream 数据专属的字节输出流 * 这个流可以将数据连同数据的类型一并写入文件(该文件不是普通的文本文件...{ //创建数据专属的字节输出流 DataOutputStream dos=new DataOutputStream(new FileOutputStream("/Users...; /** * java.io.DataInputStream 数据专属的字节输入流 * DataOutputStream 写的文件只能使用 DataInputStream 来读,同时读的顺序必须和写的顺序一样
领取专属 10元无门槛券
手把手带您无忧上云