JAVA WEb从入门到精通 第十四章02 输入输出流
JAVA WEb从入门到精通 第十四章04 文件输入输出流

Thank you
文件输入输出流
本讲大纲:
1、FileInputStream与eOutputStream类
2、FileReader类和FileWriter类
FileInputStream与FileOutputStream类
FileInputStream类与FileOutputStream类都是用来操作磁盘文件。如果用户的文 件读取需求比较简单,则可以使用FileInputStream类。该类继承自InputStream 类。FileOutputStream类与FileInputStream类对应,提供了基本的文件写入能力。 FileOutputStream类是OutoputStream类的子类。
FileReader类和FileWriter类
使用FileOutputStream类向文件中写入数据与使用FileInputStream类从文件中将 内容读出来,存在一点不足,即这两个类都只提供了对字节或字节数组的读取方 法。由于汉字在文件中占用两个字节,如果使用字节流,读取不好可能会出现乱 码现象。此时采用字符流Reader或Writer类即可避免这种现象。 FileReader、FileWriter字符流对应了FileInputStream、FileOutputStream类。 FileReader流顺序地读取文件,只要不关闭流,每次调用read()方法就顺序地读 取源中其余的内容,直到源的末尾或流被关闭。
JAVA WEb从入门到精通 第十四章06 数据输入输出流

本讲大纲:
Hale Waihona Puke 1、数据输入输出流数据输入输出流
数据输入输出流(DataInputStream类与DataOutputStream类)允许应用程序以 与机器无关的方式从底层输入流中读取基本Java数据类型。也就是说,当读取一 个数据时,不必再关心这个数值应当是什么字节。 DataInputStream类只提供了一个readUTF()方法返回字符串。这是因为要在一个 连续的字节流读取一个字符串,如果没有特殊的标记作为一个字符串的结尾,并 且事先也不知道这个字符串的长度,也就无法知道读取到什么位置才是这个字符 串的结束。DataOutputStream类中只有writeUTF()方法向目标设备中写入字符串 的长度,所以我们也只能准确地读回写入字符串。
Thank you
Java输入输出流(字符流)

• RandomAccessFile:提供对文件的随机访问支持
文件操作
• 文件操作: File
boolean canRead() ---是否可读 boolean canWrite() ---是否可写 boolean setReadOnly()---设置为只读 boolean exists() ---判断文件是否存在 boolean isDirectory() -----是否为目录 boolean isFile() ---是否为文件 boolean isHidden() ---是否为隐藏目录 long lastModified() ---最后修改的时间 boolean setLastModified(long time)---设置最后修改的 时间 long length() ---文件大小
文件操作
• FileDescriptor
– FileInputStream & FileOutputStream & RandomAccessFile
• FileDescriptor getFD() ----以上类都持有该方法
• 通过FileDescriptor构造输入输出流
– FileInputStream(FileDescriptor fdObj) – FileOutputStream(FileDescriptor fdObj) – FileReader(FileDescriptor fd) – FileWriter(FileDescriptor fd)
java字符输入输出流的用法

Java字符输入输出流是用来处理字符流的,比较适合处理文本文件。
1. InputStreamReader和OutputStreamWriterJava提供了InputStreamReader和OutputStreamWriter两个类,分别用于将字节流转换成字符流,以及将字符流转换成字节流。
它们可以指定字符集,实现不同字符编码之间的转换。
2. FileReader和FileWriterFileReader和FileWriter分别用于读取和写入字符文件。
它们默认使用评台默认的字符编码,也可以指定字符编码。
3. BufferedReader和BufferedWriterBufferedReader和BufferedWriter是字符输入输出流的缓冲流,它们可以提高读写的效率。
BufferedReader可以一次读取一行字符,BufferedWriter可以一次写入一行字符。
4. PrintWriterPrintWriter是字符输出流的高级类,它提供了很多方便的方法来输出各种类型的数据,比如字符串、整数、浮点数等。
5. 字符输入输出流的使用示例下面是一个使用字符输入输出流读写文件的示例:```javaimport java.io.*;public class FileCopy {public static void m本人n(String[] args) {try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"));BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {String line;while ((line = reader.readLine()) != null) {writer.write(line);writer.newLine();}} catch (IOException e) {e.printStackTrace();}}}```在这个例子中,我们使用BufferedReader和BufferedWriter来读取和写入文本文件,通过BufferedReader的readLine方法一次读取一行字符,然后通过BufferedWriter的write和newLine方法来写入文件。
Java中IO流,输入输出流概述与总结

Java中IO流,输⼊输出流概述与总结总结的很粗糙,以后时间富裕了好好修改⼀下。
1:Java语⾔定义了许多类专门负责各种⽅式的输⼊或者输出,这些类都被放在java.io包中。
其中,所有输⼊流类都是抽象类InputStream(字节输⼊流),或者抽象类Reader(字符输⼊流)的⼦类;⽽所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的⼦类。
【⾸先需要明⽩的是:流是⼲什么的(为了永久性的保存数据)根据数据流向的不同分为输⼊流和输出流;根据处理数据类型的不同分为字符流和字节流;】【然后需要明⽩的是输⼊模式和输出模式是谁流向谁:InputStream(字节输⼊流)和Reader(字符输⼊流)通俗的理解都是读(read)的。
OutputStream(字节输出流)和Writer(字符输出流)通俗的理解都是写(writer)的。
】最后下⾯搞清楚各种流的类型的该怎么⽤,谁包含谁,理清思路。
2:InputStream类是字节输⼊流的抽象类,是所有字节输⼊流的⽗类,InputStream类具有层次结构如下图所⽰;3:java中的字符是Unicode编码的,是双字节的。
InputStream是⽤来处理字节的,在处理字符⽂本时很不⽅便。
Java为字符⽂本的输⼊提供了专门的⼀套类Reader。
Reader类是字符输⼊流的抽象类,所有字符输⼊流的实现都是它的⼦类。
4:输出流OutputStream类是字节输⼊流的抽象类,此抽象类表⽰输出字节流的所有类的超类。
5:Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的⼦类。
6:File类是IO包中唯⼀代表磁盘⽂件本⾝的对象。
通过File来创建,删除,重命名⽂件。
File类对象的主要作⽤就是⽤来获取⽂本本⾝的⼀些信息。
如⽂本的所在的⽬录,⽂件的长度,读写权限等等。
(有的需要记忆,⽐如isFile(),isDirectory(),exits();有的了解即可。
JAVA输入输出流和文件操作

JAVA输入输出流和文件操作
1、JAVA输入输出流
Java的输入/输出流机制是Java中最基本的控制机制,它是把Java 程序和外部文件和网络服务之间建立的数据传输通道,是Java程序访问来自外部资源的基本手段。
Java的输入/输出流机制是Java中最基本的控制机制,它是把Java 程序和外部文件和网络服务之间建立的数据传输通道,是Java程序访问来自外部资源的基本手段。
Java的输入/输出流机制是将不同的数据源统一到同一结构,从而使Java程序与各种外部资源(文件、网络服务)之间可以进行输入/输出操作。
普通的Java程序可以使用这些IO流来读取和写入文件,从而实现文件的操作。
Java的输入/输出流系统分为字节流和字符流两种。
字节流是用来处理二进制数据流的,可以用来处理原始数据流;而字符流是用来处理字符流的,可以用来处理文本文件。
2、JAVA文件操作
文件是操作系统中用来存储信息的基本单位,在JAVA编程中,我们使用File来操作文件,File类是java.io包中的类,它是为了访问底层操作系统提供的文件和目录的操作方法。
File类可以用来操作一些文件系统相关的信息,比如:文件名、文件大小、文件是否存在等等,我们可以使用File类来实现文件的创建、删除、复制、移动等操作。
另外,如果要实现文件的读写操作。
Java中的输入输出流操作详解

Java中的输入输出流操作详解Java是一种面向对象的编程语言,广泛应用于各种领域。
在Java中,输入输出流是非常重要的概念,它提供了一种机制来实现程序与外部世界的交互。
本文将详细介绍Java中的输入输出流操作,包括输入流和输出流的概念、常用的输入输出流类以及它们的用法。
一、输入流和输出流的概念在Java中,输入流和输出流是用于在程序与外部环境之间传输数据的通道。
输入流用于从外部环境(如文件、网络等)读取数据到程序中,而输出流则用于将程序中的数据写入到外部环境中。
输入流和输出流是Java IO库中的核心概念,通过它们可以实现数据的读取和写入。
二、常用的输入流类1. InputStreamInputStream是所有输入流类的抽象基类,它定义了读取字节的基本方法。
常用的InputStream的子类包括FileInputStream、ByteArrayInputStream和DataInputStream等。
FileInputStream用于从文件中读取数据,ByteArrayInputStream 用于从字节数组中读取数据,DataInputStream用于从输入流中读取基本数据类型。
2. ReaderReader是所有字符输入流类的抽象基类,它定义了读取字符的基本方法。
常用的Reader的子类包括FileReader和BufferedReader等。
FileReader用于从文件中读取字符,BufferedReader用于从字符输入流中读取字符并缓冲输入。
三、常用的输出流类1. OutputStreamOutputStream是所有输出流类的抽象基类,它定义了写入字节的基本方法。
常用的OutputStream的子类包括FileOutputStream、ByteArrayOutputStream和DataOutputStream等。
FileOutputStream用于将数据写入文件,ByteArrayOutputStream用于将数据写入字节数组,DataOutputStream用于将基本数据类型写入输出流。
java中的输入流与输出流

3 标准错误
运行或编译Java程序时,各种错误 信息输出到标准错误设备,即显示器。 在Java中,标准错误设备用System.err表 示 。 System.err 属 于 PrintStream 类 对 象 。
10.3 文件操作
在程序中要对磁盘文件或目录进行操作, 首先要对文件或目录建立连接,为此Java提供 了File类。File类也位于java.io包中,但不是流 类,而是专门用来管理磁盘文件和目录。
OutputStream子类的继承关系
Reader类(字符流)
int read( ) long skip( ) void mark( ) void close( ) void reset( )
Reader类的主要方法
Reader BufferedReader InputStreamReader FileReader
1 建立File对象(三)
File(File dir, String name) 此构造方法中的参数dir表示一个磁盘目录对应 的File对象,参数name表示文件名或目录名。
例如,为文件c:\java\oldfile.txt建立File对象file 可以采用以下语句: File dir1=new File(“c:\\java\\oldfile.txt”) File file1=new(dir1,”oldfile.txt”)
注:使用文件输入流读取文件要处理I/O异常,也可以抛 出异常throw IOException
Java实例—以字节流方式写入文件
import java.io.*; public class File2{ public static void main(String[] args) throws IOException{ char ch; File file1=new File("c:\\jdk1.3\\example\\newFile.txt"); try{ FileOutputStream fout= new FileOutputStream(file1); System.out.println("输入任一字符串,以?结束"); ch= (char) System.in.read(); while (ch !='?'){
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入流
该类中所有方法遇到错误时都会引发IOException异常。下面是对该类中的一些 方法的简要说明如下表所示
输入流
Java中的字符是Unicode编码,是双字节的。InputStream是用来处理字节的,在 处理字符文本时不是很方便。Java为字符文本的输入提供了专门一套单独的类 Reader,但Reader类并不是InputStream类的替换者,只是在处理字符串时简化 了编程。Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类, Reader类的具体层次结构如下图所示:
B u ffered O u tp u tS tream D ataO u tp u tS tream ……
O u tp u tS tream
输出流
OutputStream类中的所有方法均返回void,在遇到错误时会引发IOException异 常。下面对OutputStream类中的方法作一简单的介绍,如下表所示讲大纲:
1、输入流
2、输出流
输入流
InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream 类的具体层次结构如图所示:
A u d io In p u tS tre a m B y te A rra y In p u tS tre a m S trin g B u ffe rIn p u tS tre a m B u ffe re d In p u tS tre a m F ile In p u tS tre a m D a ta In p u tS tre a m F ilte rIn p u tS tre a m In p u tS tre a m In p u tS tre a m …… O b je c tIn p u tS tre a m S e q u e n c e In p u tS tre a m P ip e d In p u tS tre a m P u sh b a c k In p u tS tre a m
C h arA rray R ead er B u ffered R ead er F ilterR ead er In p u tS tream R ead er R ead er P ip ed R ead er S trin g R ead er L in eN u m b erR ead er P u sh b ack R ead er F ileR ead er
输出流
OutputStream类是字节输入流的抽象类,此抽象类是表示输出字节流的所有类的 超类。OutputStream类的具体层次如图所示:
B y teA rray O u tp u tS tream F ileO u tp u tS tream F ilterO u tp u tS tream O u tp u tS tream O b jectO u tp u tS tream O u tp u tS tream P ip ed O u tp u tS tream
输出流
Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类,Writer类 的层次结构如下图所示:
B u ffe re d W rite r C h a rA rra y W rite r F ilte rW rite r W rite r O u tp u tS tre a m W rite r P ip e d W rite r P rin tW rite r S trin g W rite r F ile W rite r