java的输入输出与文件读写
按照数据的传输方向,流 以是未经加工的原始二进制数据,又可以是经过一定编码处理后符合某种格式规定的
特定数据,即流是由位(bits)组合或者字符(character)构成的序列,如字符流序列、数字流序列。
将数据从外设或外存(如:键盘、鼠标、文件)传递到应用程序的流称为输入流(input stream);将数据从应用程序传递到外存或外设(屏幕、打印机)的流称为输出流(output stream)。即:输入流读取数据(这里指的是应用程序读取数据),输出流写入数据(这里指的是应用程序写入数据)。
流式输入输出的特点:
1、是数据的获取和发送是沿着数据序列顺序进行,每个数据必须等待排在它前面的数据读入或者送出之后才能被读写,每次读写操作处理的都是序列中剩余的未读写数据的第一个,而不能随选择输入输出的位置。
2、采用数据流来处理输入输出使得应用程序的输入输出操作独立于相关设备,每一个应用程序可以用于多个输入输出设备,而不需要对源代码作出任何修改。增强了程序的可移植性。
输入输出流按照处理数据的类型分为:字节流(bate stream)和字符流(character stream)。字节流每次读写8位二进制数,由于它只能讲数据以二进制的方式读写,而不能分解、重组和理解这些数据,所以可以使之变换、恢复到原来的有意义的状态,因此字节流有称为二进制流(binary byte stream)或位流。而字符流一次读写16位二进制数,并将其作为一个字符而不是二进制位来处理。
字节流:处理字节数据(基本类型为InputStream、OutputStream)
字符流:处理字符数据(基本类型为Reader、Writer)
文件类:File,用于对磁盘文件和文件夹的管理。即:File是对文件存储的关注,比如文件最后的修改时间、存储位置等,而流是对文件内容的关注。这是二者的区别。
示例1:在程序中创建一个文本文件file.txt,写入从键盘输入的一串字符,然后再读取该文件并将文本文件的内容显示在屏幕上。
//filename:FileTest.java import java.io.*; class FileTest{ public static void main(String[] args){ char ch; int data; try{ FileInputStream fis = new FileInputStream(FileDescriptor.in);//声明并创建FileInputStream类型对象,初始化对象为键盘输入 FileOutputStream fos = new FileOutputStream("d:\\myfile.txt");//声明并创建FileOutputStream类型对象,初始化对象 System.out.println("请输入一串字符串,并以 # 结束:"); while((ch=(char)fis.read()) != '#')//强制类型转换为char并判断 fos.write(ch); fin.close(); fos.close(); FileInputStream fi = new FileInputStream("d:\\myfile.txt");//声明并创建FileInputStream类型对象,初始化对象 FileOutStream fo = new FileOutputStream(FileDescriptor.out);//声明并创建FileOutputStream类型对象,初始化对象 while(fi.avaliable() > 0) { data = fi.read(); fo.write(data); } fi.close(); fo.close(); } catch(FileNotFoundException e){ System.out.println("文件没找到"); } } }
示例2:用FileInputStream和FileOutputStream实现对二进制图像文件的复制
//filename:ImageFileTest.java import java.io.*; public Class ImageFileTest{ public static void main(String[] args) throws IOException{ FileInputStream fi = new FileInputStream("d:\\scenery.jpg);//声明并创建FileInputStream类型的对象,初始化对象 FileOutputStream fo = new FileOutputStream("d:\\copyScenery.jpg");//声明并创建FileOutputStream类型的对象,初始化对象 byte [] b = new byte[fi.available()];//创建byte类型的数组 fi.read(b);//将图形文件读入b数组 fo.write(b);//将b数组的数据写入新文件'copyScenery.jpg' System.out.println("文件已被复制并更名"); fi.close(); fo.close(); } }
相关推荐
### Java输入输出流与文件处理 #### 重要概念与基础知识 **输入输出流与文件处理**在编程领域占据着核心地位,特别是在Java中,通过`java.io`包提供了丰富的类和接口来支持输入输出操作。这包括从键盘读取用户输入...
### Java 输入输出流及文件读写详解 #### I/O 类体系结构 在Java开发中,输入输出(I/O)操作是非常重要的部分,特别是在处理文件、网络通信等方面。Java的I/O类体系主要位于`java.io`包中,此外还有一些新实现的I...
Java输入输出流是Java编程中一个非常重要的概念,主要用于数据的读取和写入操作,包括文本文件和二进制文件。在实验9中,主要目的是理解和掌握I/O流的分类,以及如何进行文本和二进制文件的读写。 I/O流在Java中被...
Java中的输入输出流是程序与外部数据交互的重要方式,它允许我们读取和写入数据到各种来源,如键盘、文件、网络等。在Java中,输入输出流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。本次实验...
Java 输入输出流(I/O 流)是Java平台的核心特性之一,用于处理数据的传输,包括文件读写、网络通信等。在Java API中,I/O流被组织为一系列类和接口,主要位于`java.io`包。在JDK 1.0中引入了字节流(byte stream)...
实验报告三:Java输入输出 本实验主要涵盖了Java中输入输出的基本操作,旨在让学生深入理解数据流的概念,熟悉Java流的层次结构,并掌握文件的读写操作。实验内容包括从键盘接收用户输入并在屏幕上显示,读取并显示...
- 对于ACM(算法竞赛)初学者,理解并熟练运用这些文件操作技巧是必要的,因为比赛中常常需要处理输入输出文件。 综上所述,Java文件输入输出涉及到多个类和接口,掌握这些知识对于任何Java开发者都至关重要,尤其...
4. **创建输出流**:创建一个输出流`fos`,指向与输入文件同名的新文件。 5. **获取文件大小**:通过`File`对象的`length()`方法获取文件大小,并输出。 6. **读写操作**: - 创建一个字节数组`temp`用于临时存储...
学习Java输入输出,需要理解流的概念,熟悉各类流的使用,并结合实际场景选择合适的流类型。同时,掌握文件操作、对象序列化、NIO等相关知识,能让你在处理数据交换时更加得心应手。在实践中不断尝试和调试,你会...
Java I/O 包是Java平台的核心部分,它提供了丰富的类和接口用于处理输入输出操作,包括文件操作和流式输入输出。在这个主题中,我们将深入探讨如何使用Java进行文件管理和流处理。 首先,我们来看看`java.io`包中的...
Java输入输出流是Java编程中不可或缺的部分,它用于应用程序与外部设备之间进行数据交换,比如磁盘、网络、键盘和显示器。I/O流是Java中处理输入和输出的基础框架,它提供了一种抽象的方式来处理不同类型的输入源和...
Java中的输入输出流是Java I/O(Input/Output)系统的核心组成部分,允许程序与外部数据源进行交互。在Java中,所有的I/O操作都基于流的概念,流是数据的序列,可以是字节流或字符流。Java I/O库提供了一系列的类来...
Java输入输出处理是Java编程中的一个关键领域,它涉及到程序与外部世界的数据交换,包括读取数据、写入数据以及管理内存和磁盘之间的数据流动。在Java中,输入输出通常通过流(Stream)的概念来实现,流是数据的双向...
Java输入输出流(IO流)是Java编程语言中处理数据传输的核心部分,它允许程序进行数据的读取和写入操作。在Java中,一切皆为流,输入流用于读取数据,而输出流用于写入数据。这些流可以处理各种类型的数据,包括文本...
Java输入输出操作是Java编程中的基础且重要的一部分,它涵盖了数据的读取、写入以及文件和流的管理。在Java中,输入输出主要通过I/O流(Input/Output Stream)来实现,这些流用于在程序和外部资源之间传输数据。Java...
"Java 输入输出流及文件读写详解" 本文档对 Java 中的输入输出流和文件读写进行了详细的介绍。从 I/O 类的体系结构开始,讲解了 Java 中的输入输出流的分类,包括字节流和字符流,以及它们之间的区别。然后,着重...
Java的IO流是Java平台提供的一种处理输入输出数据的重要机制,尤其在文件读写方面,它扮演着核心角色。对于初学者来说,理解和掌握Java IO流的使用是学习Java编程的基础,也是进阶到更复杂系统开发的关键一步。 ...
在进行文件读写操作时,我们可能会遇到各种异常,如`FileNotFoundException`(文件未找到)、`IOException`(输入/输出异常)等。因此,良好的做法是将这些可能抛出异常的操作放在`try-catch`块中,以确保程序的健壮...
下面将详细阐述Java输入与输出流的相关知识点。 1. **流的概念**: 流是Java I/O的核心概念,它代表数据的源或目的地。流可以是向文件、内存、网络连接等地方读写数据。Java中的流分为字节流和字符流,字节流处理...