java基本输入输出
java输入输出流实验报告总结
![java输入输出流实验报告总结](https://img.taocdn.com/s3/m/7e190274a22d7375a417866fb84ae45c3b35c22a.png)
java输入输出流实验报告总结Java输入输出流是Java中非常重要的概念,也是Java程序设计的基础。
在Java 程序中,输入输出流用于处理与设备之间的数据传输,例如键盘、鼠标、文件等。
Java的输入输出流主要包含两种类型:字节流和字符流。
字节流以字节为最小读写单位,而字符流以字符为最小读写单位。
Java的输入流有很多种类型,例如:InputStream、ByteArrayInputStream、FileInputStream等。
这些输入流的共同特点是读取外部数据到程序中。
Java的输出流也有多种类型,例如:OutputStream、ByteArrayOutputStream、FileOutputStream等。
这些输出流的共同特点是将程序中的数据输出到外部。
下面将以实验报告的形式进行总结,详细介绍Java输入输出流的原理和使用方法。
实验一:字节流输入输出1. 实验目的:掌握字节流输入输出的基本使用方法。
2. 实验内容:编写一个程序,实现从文件中读取数据,然后将数据输出到另一个文件中。
3. 实验步骤:a. 创建一个输入流对象,用于读取原始文件的数据。
b. 创建一个输出流对象,用于将读取到的数据输出到目标文件中。
c. 循环读取输入流中的数据,直到读取到文件末尾。
d. 将读取到的数据写入输出流中。
e. 关闭输入流和输出流。
4. 实验结果:成功读取原始文件中的数据,并将数据输出到目标文件中。
实验二:字符流输入输出1. 实验目的:掌握字符流输入输出的基本使用方法。
2. 实验内容:编写一个程序,实现从键盘输入文字,然后将文字输出到屏幕上。
3. 实验步骤:a. 创建一个字符输入流对象,用于读取键盘输入的文字。
b. 创建一个字符输出流对象,用于将读取到的文字输出到屏幕上。
c. 循环读取输入流中的文字,直到读取到换行符。
d. 将读取到的文字写入输出流中。
e. 关闭输入流和输出流。
4. 实验结果:成功从键盘输入文字,并将文字输出到屏幕上。
JAVA第9章 输入输出课件
![JAVA第9章 输入输出课件](https://img.taocdn.com/s3/m/341e8fa069eae009581becfc.png)
9.2.5 小文件的读写
• Files类提供了从一个较小的二进制文件和文 本文件读取和写入的方法。readAllBytes() 方法和readAllLines()方法分别是从二进制 文件和文本文件读取。这些方法可以自动打 开和关闭流,但不能处理大文件。
9.2.5 小文件的读写
• public static byte[] readAllBytes(Path path):从指定的二进制文件中读取所有字 节。
9.2 Files类操作
• java.nio.类是一个功能非常强大的类。 • 该类定义了大量的静态方法用来读、写和
操纵文件和目录。Files类主要操作Path对 象。
9.2.1 创建和删除目录和文件
• public static Path createDirectory(Path dir, <?>…attrs)
= ();
1. 类
• Path getPath(String first, String …more) • String getSeparator() • Iterable<Path> getRootDirectores() • boolean isOpen() • boolean isReadOnly()
• static Path setOwner(Path path, UserPrincipal) :设置指定文件的所有者。
9.2.2 文件属性操作
• 下面程序演示了Files类几个方法的使用。 • 程序9.1
R u n
9.2.3 文件和目录的复制与移动
• 使用Files类的copy()方法可以复制文件和 目录,使用move()方法可以移动目录和文 件。copy()方法的一般格式为: public static Path copy( Path source, Path target, CopyOption…options)
java中的输入输出语句
![java中的输入输出语句](https://img.taocdn.com/s3/m/129d4b4978563c1ec5da50e2524de518964bd33b.png)
在Java中,你可以使用System.out来进行标准输出,使用System.in来进行标准输入。
以下是一些基本的输入输出语句示例:1. 标准输出(System.out):public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}上述示例中,System.out.println用于将文本输出到控制台。
2. 标准输入(System.in):import java.util.Scanner;public class UserInput {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("Enter your name: ");String name = scanner.nextLine();System.out.print("Enter your age: ");int age = scanner.nextInt();System.out.println("Hello, " + name + "! You are " + age + " years old.");}}上述示例中,Scanner类用于从控制台读取用户的输入。
scanner.nextLine()用于读取一行文本,而scanner.nextInt()用于读取整数。
3. 格式化输出(System.out.printf):public class FormatOutput {public static void main(String[] args) {String name = "John";int age = 25;System.out.printf("Hello, %s! You are %d years old.%n", name, age);}}上述示例中,System.out.printf允许你使用格式字符串输出,并在其中插入变量的值。
Java 输入输出 的 基本原理及示例
![Java 输入输出 的 基本原理及示例](https://img.taocdn.com/s3/m/e84b88150722192e4536f68a.png)
来自:亿淘城_减肥榜的个人笔记谢谢你的支持(*^__^*) 嘻嘻……Java I/O原理→基本概念:•I/O(Input/Output)•数据源(Data Source)•数据宿(Data Sink)→Java中把不同的数据源与程序间的数据传输都抽象表述为“流”(Stream),java.io包中定义了多种I/O流类型实现数据I/O功能。
→I/O流分类:•输入流(Input Stream)和输出流(Output Stream)•节点流(Node Stream)和处理流(Processing Stream)•字符流(Character Stream)和字节流(Byte Stream)#输入流(Input Stream)和输出流(Output Stream)1.输入流只能从中读取数据,而不能向其写数据;2.输出流则只能向其写出数据,而不能从中读取数据;3.特例:java.io.RandomAccessFile类。
#节点流(Node Stream)和处理流(Processing Stream)1.节点流直接连接到数据源2.处理流是对一个已存在的流的连接和封装,通过所封装的刘的功能调用实现增强的数据读写功能,处理流并不直接连到数据源#字符流(Character Stream)和字节流(Byte Stream)1.字节流以字节为单位进行数据传输,每次传送一个或多个字节。
2.字符流以字符为单位进行数据传输,每次传送一个或多个字符。
※Java命名惯例:凡是以InputStream 或OutputStream结尾的类型均为字节流,凡是以Reader 或Writer 结尾的均为字符流。
InputStream抽象类java.io.InputStream 是所有字节输入流类型的父类,该类中定义了以字节为单位读取数据的基本方法,并在其子类中进行了分化和实现。
◆三个基本的 read方法:Int read()Int read(byte[] buffer)Int read(byte[] buffer,int offset,int length)◆其它方法:Void close()Int available()Skip(long n)Boolean markSupported()Void mark(int readlimit)Void reset()OnputStreamJava.io.OutputStream 与java.io.InputStream对应,是所有字节输出流类型的抽象父类。
java输入输出语句例子
![java输入输出语句例子](https://img.taocdn.com/s3/m/8239fd1beffdc8d376eeaeaad1f34693daef101b.png)
java输入输出语句例子Java语言中的输入输出语句是开发者经常使用的重要命令之一。
在本文中,我们将通过几个例子来展示Java中如何使用输入输出语句。
1. 导入Java中的I/O库在使用Java中的输入输出语句之前,我们需要先导入Java中的I/O库。
通过这个库,我们可以轻松地从键盘读取输入、从文件中读取输入和将输出写入文件。
在Java中,我们通常使用java.io包中的类来处理输入输出任务。
为了导入这个包,我们只需要在Java程序的开头添加以下代码:```import java.io.*```2. 使用Java中的输入输出语句一旦我们导入了Java中的I/O库,我们就可以开始使用Java中的输入输出语句了。
以下是几个例子:- 读取键盘输入并将其打印出来```import java.io.*public class InputOutputExample{public static void main(String args[]) throws IOException{BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));System.out.println("Enter your name: ");String name = inp.readLine();System.out.println("Hi " + name + ", nice to meet you!"); }}```在这个例子中,我们创建了一个BufferedReader对象,并使用它来读取来自键盘的输入。
我们使用System.in作为我们的输入源,并使用InputStreamReader将它们从字节流转换为字符流。
最后,我们使用BufferedReader的readLine()方法来读取用户输入。
《java输入输出》课件
![《java输入输出》课件](https://img.taocdn.com/s3/m/1a3756f168dc5022aaea998fcc22bcd127ff425f.png)
通过格式化字符串将数据输出到控制台。
String.format
将数据格式化字符串并返回格式化结果。
异常处理
1
try -catch语句
通过添加try-catch语句来处理异常。
2
fin ally 语句
无论是否发生异常,finally语句块中的代码都会执行。
3
自定义异常
开发自定义异常来处理特殊情况。
字符输入输出
字符读取
使用Reader类读取字符信息。
字符写入
使用Writer类向文件中写入字符信息,可支持中文。
二进制输入输出
1 输入
使用BufferedInputStream类从二进制文件中读取信息。
2 输出
使用BufferedOutputStream类将信息写入二进制文件中。
格式化输入输出
控制台输出
使用System.out.print来在控制台输出信息。
键盘输入
使用Scanner类从键盘获取用户输入的信息。
文件输入输出
1
文件读取
使用File类和Scanner类从文件中读取信息。
2
文件写入
使用FileWriter类和PrintWriter类信息写入文件中。
3
二进制文件读写
使用InputStream和OutputStream类读写二进制文件。
《java输入输出》PPT课件
本课程将教您如何处理各种输入输出并展示Java编程语言的强大功能。
输入输出概述
输入
从外部读取数据到计算机中,例如键盘输入。
处理
综合输入和输出,对外部数据做出处理。
输出
将数据从计算机输出到外部,例如屏幕输出。
JAva第 6 章 Java的输入输出.ppt
![JAva第 6 章 Java的输入输出.ppt](https://img.taocdn.com/s3/m/acf0fe7833d4b14e84246827.png)
2020/8/16
2020/8/16
Java面向对象程序设计教程
9
输入输出类的分类
文件I/O :FileInputStream 内存缓冲区I/O :BufferedInputStream 存取I/O :DataInputStream 管道I/O :PipedInputStream 过滤器I/O :FilterInputStream
2020/8/16
Java面向对象程序设计教程
10
标准流及其重定向
System.out是标准的输出流,默认情况下, 它是一个控制台。
System.in是标准输入流,默认情况下, 它指的是键盘。
System.err指的是标准错误流,它默认是 控制台。
这些流可以重定向到任何兼容的输入/输出 设备。
6.3 数据持久化
• 6.3.1 对象串行化 • 6.3.2 XML文件的输入输出 • 6.3.3 JDBC入门
6.4 文件类的应用
• 6.4.1 File类 • 6.4.2 File类应用举例
2020/8/16
Java面向对象程序设计教程
2
6.1 流输入/输出类的层次结构
流的概念
流(Stream)是有序的数据序列,它有源(输入流)与 目的(输出流)。
举例:RedirectSample.java
2020/8/16
Java面向对象程序设计教程
11
IOException及其子类
在java.io中,每一个特定的I/O错误都是 用异常IOException及其子类来报告的。
最常见的I/O异常有 FileNotFoundException、 EOFException、 InterruptedIOException、 UTFDataFormatError等。
[java入门学习]第 9 章 Java输入输出操作
![[java入门学习]第 9 章 Java输入输出操作](https://img.taocdn.com/s3/m/606d182c7375a417866f8f58.png)
第九章 Java输入输出操作9.1 Java 输入输出流所有的程序语言都提及与本机文件系统交互的方式;Java也不例外。
我们将看看Java 是怎样处理标准文件输入输出的(包括stdin,stout,stderr)。
当你在网络上开发小程序时,你必须注意直接文件输入输出是不安全因素的关键。
大多数用户设置他们的浏览器,可让你自由的访问他们的文件系统,但有的不让你访问。
当然,如果你开发你内部的应用程序,你也许需要直接访问文件。
标准输入输出Unix的用户,或其他基于命令行系统的用户(如DOS),都知道标准输入输出的含义。
标准输入文件是键盘,标准输出文件是你的终端屏幕。
标准错误输出文件也指向屏幕,如果有必要,它也可以指向另一个文件以便和正常输出区分。
系统类Java通过系统类达到访问标准输入输出的功能。
上面提到的三个文件在这个系统类中实现:Stdin System.in作为InputStream类的一个实例来实现stdin,你可以使用read()和skip(long n)两个成员函数。
read()让你从输入中读一个字节,skip(long n)让你在输入中跳过n个字节。
Stout System.out作为PrintStream来实现stdout,你可以使用print()和println()两个成员函数。
这两个函数支持Java的任意基本类型作为参数。
Stderr System.err同stdout一样实现stderr。
象System.out一样,你可以访问PrintStream 成员函数。
9.2 标准输入输出例子import java.io.* class myCat{public void main(String args[]) throws IOException{int b;int count = 0;while ((b = System.in.read()) != -1){count++;System.out.print((char)b);}System.out.println(); //blank line System.err.println("counted"+count+"total bytes.");}}9.3 普通输入输出类除了基本的键盘输入和屏幕输出外,我们还需要联系文件的输入输出。
java 标准输入输出流
![java 标准输入输出流](https://img.taocdn.com/s3/m/8f3afe1b5f0e7cd184253632.png)
java 标准输入输出流
计算机系统都有标准的输入设备和标准输出设备。
对一般系统而言,标准输入设备通常是键盘,而标准输出设备是屏幕。
Java程序经常需要从键盘上输入数据,从屏幕上输出数据,为此频繁创建输入/输出流对象将很不方便。
因此,Java语言事先定义好了两个对象,分别对系统的标准输入和标准输出相联系,如System.in和System.out,另外还定义了标准的System.err错误输出流。
System.in是标准输入流,是InputStream类的实例。
可以使用read()方法从键盘上读取字节,也可以将它包装成数据流读取各种类型的数据和字符串。
在使用System.in的read()方法时,由于read()方法在定义时抛出了IOException 异常,所以必须使用try-catch结构捕获异常或声明抛出异常;
System.out和System.err是标准输出流和标准错误输出流,是PrintStream类的实例。
如果从标准输入流键盘上输入基本数据类型,可以将标准输入流包装成具有缓
执行上述代码,结果如图12-12所示。
图12-12 System.in 标准输入流。
Java中常用数据类型的输入输出详解
![Java中常用数据类型的输入输出详解](https://img.taocdn.com/s3/m/ec5959ee710abb68a98271fe910ef12d2af9a93f.png)
Java中常⽤数据类型的输⼊输出详解⽬录1、Char型1.1 输⼊格式:1.2 举例说明2、int型1.1 简单的int格式输⼊:1.2 举例说明2.1带空格的int格式输⼊:2.2 举例说明3.1 复杂int格式的输⼊3.2 举例说明3、double型1.1 double保留两位格式输出1.2 举例说明4、多次输⼊1.1 输⼊格式1.2 举例说明5、数组1.1 数组输⼊格式:2.1 数组转换成字符串6、字符串1.1 字符串转换成整型,浮点型(以整型为例)1.2 整型,浮点型转换成字符串2.1 字符串转换成字符数组2.2 字符数组转换成字符串3 举例说明7、写在最后C语⾔学习完转到Java后,第⼀个感觉就是Java的写法很复杂,同时,在常⽤的数据类型的输⼊输出上也没有C语⾔那么⽅便。
在C语⾔上⾯,⽤ scanf 函数可以很⽅便的输⼊⼤多数格式,在Java上却不⾏,Java当中没有类似于scanf的语句。
本⽂搭配本⼈的输⼊输出习惯及做题的记录,对这些不同类型的如整型的,是整型的但隔开参数的...做⼀个总结。
下⾯的说明中主类均为Main类,我们使⽤Scanner来进⾏输⼊。
每⼀种输⼊或输出可能有多种⽅法,本⼈只写了较为简单的写法。
1、Char型这⾥说的char型指的是只输⼊⼀个字符的情况。
1.1 输⼊格式:import java.io.IOException;//导⼊包public class Main {public static void main(String[] args) throws IOException {char ch = (char)System.in.read();//<1>System.out.println((int)ch);}}说明:需要搭配IOException异常来使⽤。
<1>中,System.in就是从标准输⼊流(最常见的是键盘)输⼊,rand()⽅法是从这个流⾥⾯读取输⼊的内容。
java
![java](https://img.taocdn.com/s3/m/130cb1cc4028915f804dc240.png)
System.out.println("文件名: "+myFile.getName()); System.out.println("文件的相对路 径:"+myFile.getPath()); System.out.println("文件绝对路 径:"+myFile.getAbsolutePath()); System.out.println("上一级目录 名:"+myFile.getParent());
(2)public File(String pathname, String name); 参数pathname指明新创建的文件对象 所对应的文件所在的路径,可以是绝对路 径或相对路径。参数name指明新创建的文 件对象所对应文件的名称。将路径和名称 分开可使具有相同路径的文件具有同一个 路径字符串,而且方便管理。 例如: File myFile=new File("c:\java", "test.txt");
System.out.println("文件长 度:"+myFile.length()); System.out.println("是文件 吗?"+myFile.isFile()); System.out.println("是目录 吗?"+myFile.isDirectory()); System.out.println("是否可 写?"+myFile.canWrite());
第9章 Java输入输出
9.1 Java输入输出概述
9.2 文 件 处 理 9.3 目 录 管 理
java中基本输入输出流的解释
![java中基本输入输出流的解释](https://img.taocdn.com/s3/m/066f4b63e55c3b3567ec102de2bd960590c6d97b.png)
java中基本输入输出流的解释1.网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节。
字节就是字节,在很大程度上,读服务器发送的数据与读取文件没什么不同;向客户传送数据与写入一个文件也没有什么区别。
Java中输入和输出组织不同于大多数其他语言。
它是建立在流(stream)上。
不同的基本流类(如java.io.FileInputStream和.TelnetOutputStream)用于读写特定的数据资源。
但是所有的基本输出流使用同一种基本方法读数据。
过滤器流可以连接到输入流或输出流。
它可以修改已经读出或写人的数据(例如,加密或压缩数据),或者可以简单地提供附加方法将已经读出或写入的数据转化成其他格式。
最后Reader和Writer也可以链接到输入流和输出流,从而允许程序读出和写入文本(即字符)而不是字节。
如果使用正确,Reader和Writer能够处理多种类型的字符编码,包括SJIS和UTF-8等多字节字符集。
一、输出流java的基本输出流是 java.io.OutputStream.public abstract class OutputStreamn public abstract void write(int b) throws IOExceptionn public void write(byte[] data) throws IOExceptionn public void write(byte[] data,int offset,int length) throws IOExceptionn public void flush() throws IOExceptionn public void close() throws IOExceptionOutputStream的子类使用这些方法向指定媒体写入数据。
我始终相信,我们理解了为什么它们存在,就会更好地记住它们,好,现在开始说一下OutputStream类的方法的由来public abstract void write(int b) throws IOExceptionOutputStream的基本方法是write(int b)。
java标准输入输出常用方法
![java标准输入输出常用方法](https://img.taocdn.com/s3/m/0baf61525e0e7cd184254b35eefdc8d377ee1452.png)
java标准输入输出常用方法Java标准输入输出是Java编程语言中常用的输入输出方式,它们提供了方便快捷的数据传输功能。
在Java中,标准输入输出包括标准输入流(stdin)、标准输出流(stdout)和标准错误输出流(stderr)。
这些流对象都是java.io包中的抽象类,它们提供了许多常用的方法来实现数据的输入输出操作。
一、标准输入流(stdin)标准输入流是一个常用的输入流对象,通常用于从控制台读取用户输入的数据。
Java提供了许多常用的方法来实现对标准输入流的读取操作。
以下是一些常用的方法:1.read()方法:用于从标准输入流中读取一个字节数据,并返回该数据的字节值。
如果读取成功,返回值为1;如果读取失败或到达文件末尾,返回值为-1。
示例代码:```javaintdata=stdin.read();```2.readLine()方法:用于从标准输入流中读取一行数据,并返回该行的字符串值。
该方法会一直读取直到遇到换行符或到达文件末尾。
示例代码:```javaStringline=stdin.readLine();```3.readInt()方法:用于从标准输入流中读取一个整数数据,并返回该数据的整数值。
该方法会读取一个整数数据,并将其存储在一个int类型的变量中。
示例代码:```javaintnum=stdin.readInt();```需要注意的是,在使用标准输入流时,需要注意控制台的缓冲区大小和读取速度,以免造成数据丢失或程序崩溃。
二、标准输出流(stdout)标准输出流是一个常用的输出流对象,通常用于将数据输出到控制台或文件。
Java提供了许多常用的方法来实现对标准输出流的输出操作。
以下是一些常用的方法:1.write()方法:用于将一个字节数据写入到标准输出流中。
该方法需要一个byte类型的参数,表示要写入的字节数据。
示例代码:```javastdout.write(data);```2.print()方法:用于将一个对象写入到标准输出流中,并自动将其转换为字符串形式进行输出。
java输入输出流实验报告总结】
![java输入输出流实验报告总结】](https://img.taocdn.com/s3/m/fe81a0e60129bd64783e0912a216147917117ec9.png)
java输入输出流实验报告总结】Java输入输出流实验报告总结在本次实验中,我们学习了Java的输入输出流的概念和用法。
输入输出流是Java中用于处理输入和输出操作的工具。
通过输入流,我们可以将外部数据输入到程序中进行处理,通过输出流,我们可以将程序中的数据输出到外部文件或设备上。
在本次实验中,我们通过几个具体的示例来探索输入输出流的不同用法和特性,以期更好地理解和掌握它们的使用。
首先,我们学习了如何使用FileInputStream和FileOutputStream这两个类来进行字节流的输入和输出操作。
这两个类分别用于从指定文件中读取字节数据和将字节数据写入到指定文件中。
通过这两个类,我们可以实现文件的拷贝、移动、创建等功能。
同时,我们还了解了如何使用BufferedInputStream和BufferedOutputStream这两个类来提高读写效率。
这两个类可以通过缓存数据来减少对底层系统的IO操作次数,从而提高读写速度。
接下来,我们学习了如何使用FileReader和FileWriter这两个类进行字符流的输入和输出操作。
这两个类与字节流的输入输出类似,但它们处理的是字符数据。
通过这两个类,我们可以读取和写入文本文件中的字符数据。
我们还了解了字符编码和字符集的概念,并学习了如何使用InputStreamReader和OutputStreamWriter来进行字符流和字节流之间的转换。
除了字节流和字符流,我们还学习了对象流的使用。
对象流可以将Java 对象直接写入到文件中,也可以从文件中读取Java对象。
这在处理一些复杂的对象数据时非常有用。
我们通过使用ObjectInputStream和ObjectOutputStream这两个类,实现了对象的读写操作。
需要注意的是,被写入和读取的对象必须实现Serializable接口,否则会抛出NotSerializableException异常。
在实验过程中,我们还探索了如何使用标准输入输出流。
java 输入窗口和输出窗口写法
![java 输入窗口和输出窗口写法](https://img.taocdn.com/s3/m/27c31bc0b8d528ea81c758f5f61fb7360b4c2b9c.png)
一、背景介绍1. Java是一种面向对象的编程语言,广泛应用于企业级应用开发和互联网应用开发领域。
2. 在Java编程中,输入窗口和输出窗口是常用的交互界面,用于接收用户输入和显示程序运行结果。
3. 本文将介绍Java中输入窗口和输出窗口的写法,以及常见的应用场景。
二、输入窗口的写法1. 使用Scanner类来实现输入窗口。
Scanner scanner = new Scanner(System.in);String input = scanner.nextLine();// 读取用户输入并存储到变量input中2. 使用JOptionPane类来实现图形化输入窗口。
String input = JOptionPane.showInputDialog("请输入内容:");// 弹出带有输入框的窗口,等待用户输入,并将用户输入的内容存储到变量input中三、输出窗口的写法1. 使用System.out.println()来实现控制台输出。
System.out.println("Hello, World!");// 在控制台输出字符串"Hello, World!"2. 使用JOptionPane类来实现图形化输出窗口。
JOptionPane.showMessageDialog(null, "Hello, World!"); // 弹出带有消息提示框的窗口,显示字符串"Hello, World!"四、输入窗口和输出窗口的应用场景1. 输入窗口的应用- 用户信息输入:例如登录界面、注册界面等需要用户输入信息的场景。
- 数据采集:例如统计调查、问卷调查等需要用户提供信息的场景。
2. 输出窗口的应用- 程序执行结果展示:用户操作的反馈信息、程序执行的结果展示等应用场景。
- 提示信息显示:警告、错误提示、成功提示等信息的显示。
Java输入输出流(一)——常用的输入输出流
![Java输入输出流(一)——常用的输入输出流](https://img.taocdn.com/s3/m/bc1aa36000f69e3143323968011ca300a6c3f67f.png)
Java输⼊输出流(⼀)——常⽤的输⼊输出流1.流的概念:在Java中,流是从源到⽬的地的字节的有序序列。
Java中有两种基本的流——输⼊流(InputStream)和输出流(OutputStream)。
根据流相对于程序的另⼀个端点的不同,分为节点流和过滤流。
(1)节点流:以特定源如磁盘⽂件、内存某区域或者线程之间的管道为端点的构造输⼊输出流,是⼀种基本的流。
(2)过滤流:以其他已经存在的流为端点构造的输⼊输出流。
根据流中的数据单位分为字节流和字符流。
(1)字节流:流中的数据是以8位字节为单位进⾏读写,以InputStream和OutputStream为基础类。
(2)字符流:流中的数据是以16为字符为单位进⾏读写,以Reader和Writer为基础类。
2.字节流InputStream和OutputStream是字节流的两个顶层⽗类,提供了输⼊流类和输出流类的通⽤API。
2.1 输⼊字节流InputStream基本⽅法:(1)基本读⽅法;: int read() int read(byte[] b) int read(byte[] b,int off,int len)(2) 关闭流:void close()(3) 返回输⼊流中还有多少可读字节 int available()(4) 跳过指定字节 long skip(long n)(5) 回读数据 boolean markSupported() void Mark(int readlimt) void reset()2.2 输出字符流OutputStream基本⽅法:(1)基本写⽅法:void write(int c) void write(byte[] b) void write(byte[] b,int off,int len)(2) 关闭流:void close()(3)q强制输出:void flush()3.字符流:Reader和Writer是字符流的顶层⽗类,字符流能够处理Unicode字符集中的所有字符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
本章目标
1 2
理解相关基本概念。 理解相关基本概念。 使用键盘进行单个字符、字符串、 使用键盘进行单个字符、字符串、数值类型数据 的输入。 的输入。
1
Java的基本输入与输出方式
1. 2.
字符界面方式(本章内容) 字符界面方式(本章内容) 图形界面方式(以后介绍) 图形界面方式(以后介绍)
2
一、Java中流的概念 Java中流的概念
日常生活中所说的流: 日常生活中所说的流:
日常生活中的流可以被理解为一根“导管” 日常生活中的流可以被理解为一根“导管”。 导管的特点:单向性。 导管的特点:单向性。 1、什么是流? 导管”中的流类似于Java语言中的IO Java语言中的IO流 “导管”中的流类似于Java语言中的IO流。 Java语言中,流是程序在输入输出过程中流动的数据序列。 Java语言中,流是程序在输入输出过程中流动的数据序列。 语言中 流动的数据序列 流有两个端口:一端与数据源点(当输入数据时) 流有两个端口:一端与数据源点(当输入数据时)或数据 终点(当输出数据时)相连,另一端与程序相连。 终点(当输出数据时)相连,另一端与程序相连。
举例2 举例
编写程序:从键盘输入一个 到 的数字 的数字, 编写程序:从键盘输入一个0到9的数字,将数字字 符的编码值和字符本身输出到屏幕上, 符的编码值和字符本身输出到屏幕上,如果输入 的不是0到 的数字 则给出出错提示信息。 的数字, 的不是 到9的数字,则给出出错提示信息。 提示: 提示: 注意read()方法的使用。 方法的使用。 ① 注意 方法的使用 需要人工抛出异常。 ② 需要人工抛出异常。
17
举例1 举例
编写程序:从键盘输入一个字符,将字符的编码值 编写程序:从键盘输入一个字符, 和字符本身输出到屏幕上。 和字符本身输出到屏幕上。 提示: 提示: 注意read()方法的返回类型。 方法的返回类型。 ① 注意 方法的返回类型 注意read()方法只能读取一个字符。 方法只能读取一个字符。 ② 注意 方法只能读取一个字符 注意read()方法要进行异常处理。 方法要进行异常处理。 ③ 注意 方法要进行异常处理
19
20
try{ n=System.in.read(); ch=(char)n; System.out.println(“输入字符的 输入字符的unicode编码值为: 编码值为: 输入字符的 编码值为 "+n); System.out.println("输入的字符为 输入的字符为"+ch); 输入的字符为 } catch(IOException e){ System.out.println("输入的不是字符,输入有误!"); 输入的不是字符,输入有误! 输入的不是字符 } } }
3
2、流的示意图 、
A stream
数据源
reads
Program
当程序要从数据源点获得数据时, 当程序要从数据源点获得数据时,必须在程序和数据源之 间建立输入流。 间建立输入流。 Program
writes A stream
目标
4
当程序要把结果输送到数据终点时, 当程序要把结果输送到数据终点时 , 必须在程序和数据终 点之间连接建立输出流。 点之间连接建立输出流
创建流,只能用它们的子类创建字节输入或字节输出流。 创建流,只能用它们的子类创建字节输入或字节输出流。
8
字节流类的继承图: 字节流类的继承图:
9
字节流类中的几个重要方法
read()方法:InputStream类中的静态方法,用于从输入字节 方法: 类中的静态方法, 方法 类中的静态方法 流中读出一个字节。 流中读出一个字节。 print()方法 : OutputStream 类的子类 方法: OutputStream类的子类 类的子类FilterOutputStream的 方法 的 子类PrintStream的方法 。 用于输出不同类型的数据信息 。 的方法。 子类 的方法 用于输出不同类型的数据信息。 println()方法:和print()方法唯一的区别是 方法: print()方法唯一的区别是println()方法输 方法 方法唯一的区别是 方法输 出对象之后附带一个回车,下一次将在下一行中输出。 出对象之后附带一个回车,下一次将在下一行中输出。
13
Java系统预先定义的标准IO流 Java系统预先定义的标准IO流 系统预先定义的标准IO
— System.in:标准输入流,默认指键盘,用于程 :标准输入流,默认指键盘, 序输入,通常读取用户从键盘输入的信息。 序输入,通常读取用户从键盘输入的信息。
— System.out: 标准输出流 , 默认指屏幕 , 用于 : 标准输出流, 默认指屏幕,
System类是Java语言中一个功能强大、 System类是Java语言中一个功能强大、非常有 类是Java语言中一个功能强大 用的类,它提供了标准输入与输出、 用的类,它提供了标准输入与输出、运行时的系 统信息等重要工具,是属于ng ng包的一个终 统信息等重要工具,是属于ng包的一个终 止类。 止类。 System类不能创建对象 类不能创建对象, System类的属性和 System类不能创建对象,即System类的属性和 方法都是静态的,引用时要以System为前缀。 System为前缀 方法都是静态的,引用时要以System为前缀。 in、out、err为System类的三个静态属性 类的三个静态属性。 in、out、err为System类的三个静态属性。
6
1、Java中流类的总图如下: Java中流类的总图如下: 中流类的总图如下
用于输入的字节 流 用于输入的字符 流类
用于输出的字节 流
用于输出的字符 流类
7
2、字节流类
字节流以字节方式从流中读取或向流中写入数据, 字节流以字节方式从流中读取或向流中写入数据,字节流类 有:
– 输入流类InputStream及其子类 输入流类InputStream InputStream及其子类 – 输出流类OutputStream及其子类 输出流类OutputStream OutputStream及其子类
16
说明: 说明:
in是System类的一个属性,代表系统标准输入(键盘)。 是 类的一个属性, 类的一个属性 代表系统标准输入(键盘)。 In属性是 属性是InputStream类的对象, InputStream类中的方 类的对象, 属性是 类的对象 类中的方 用于接受从标准输入设备输入的字符。 法read()用于接受从标准输入设备输入的字符。执行 用于接受从标准输入设备输入的字符 System.in.read()会得到输入字符的 会得到输入字符的unicode编码值。 编码值。 会得到输入字符的 编码值 在java中,当进行键盘输入时要处理可能发生的异常现象, 中 当进行键盘输入时要处理可能发生的异常现象, 因此程序设计时使用的System.in.read()语句必须包含在 因此程序设计时使用的 语句必须包含在 try语句块中,而且 语句块的后面应该有一个可以接收 语句块中, 语句块中 而且try语句块的后面应该有一个可以接收 IOException异常的 异常的catch语句块。 语句块。 异常的 语句块
的子类PrintStream创建的对象,而print()和println()方 创建的对象, 的子类 和 方 类的成员方法。 法为PrintStream类的成员方法。
15
3 标准输入流
标准输入流使用System类的静态属性 的 read()方法 类的静态属性in的 标准输入流使用 类的静态属性 方法 从键盘读取一个字节到程序。实现格式如下: 从键盘读取一个字节到程序。实现格式如下: System.in.read() 功能:执行该方法时,等待用户击键,当击一次键后, 功能:执行该方法时,等待用户击键,当击一次键后, 该方法从输入流中读出一个字节(所键入字符的ASCII 该方法从输入流中读出一个字节(所键入字符的 ),然后将该字符的 然后将该字符的ASCII码换成 码换成Unicode编码,返回 编码, 码),然后将该字符的 码换成 编码 值为Unicode编码的 型数。按回车输入结束。 编码的int型数 值为 编码的 型数。按回车输入结束。
18
import java.io.*; class Input_Exp1{ public static void main(String[] args) { int n=-1; char ch=' '; System.out.println("请输入一个字符:"); 请输入一个字符: 请输入一个字符
10
三、标准输入/输出 标准输入/
标准输入/输出; 标准输入 /输出;指面向标准输入设备和标准输出设备 的输入/输出。 的输入/输出。 标准输入设备:现阶段默认为键盘。 标准输入设备:现阶段默认为键盘。 标准输出设备:现阶段默认为显示器。 标准输出设备:现阶段默认为显示器。
11
1、System类 System类 System
3、流的分类 、
根据流中数据传输的方向,将流分为: 根据流中数据传输的方向,将流分为:
– 输入流:从键盘或磁盘文件流向程序的数据流,为程序提 输入流:从键盘或磁盘文件流向程序的数据流,
供输入信息。 供输入信息。 – 输出流:从程序流向显示器、打印机、磁盘文件的数据流, 输出流:从程序流向显示器、打印机、磁盘文件的数据流, 实现程序的输出功能。 实现程序的输出功能。
12
Java系统内预定义的标准 流定义格式 系统内预定义的标准IO流定义格式 系统内预定义的标准
public final class ng.System extends ng.object{ public static InputStream in; public static PrintStream out; public static PrintStream err; }