java输入输出流总结

合集下载

java输入输出流实验报告总结

java输入输出流实验报告总结

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的输入与输出流(实验报告)

Java的输入与输出流(实验报告)

成都大学实验报告实验项目名称Java的输入与输出流一、实验目的:1. 理解I/O流的概念,掌握其分类2. 掌握文本文件读写、二进制文件读写二、实验内容(包括源程序及相关说明):1. 分别使用FileWriter 和BufferedWriter 往文件中写入10万个随机数,比较用时。

源代码如下:(1)import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{long t=System.currentTimeMillis();FileWriter fw =new FileWriter("d:\\Ex1.txt");for(int i=1;i<=100000;i++){fw.write((int)(Math.random()*10000)+" \n");}fw.close();t=System.currentTimeMillis()-t;System.out.println("The elapsed: "+t);}}(2)import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{long t=System.currentTimeMillis();BufferedWriter fw=new BufferedWriter(new FileWriter("d:\\Ex1.txt"));for(int i=1;i<=100000;i++){fw.write((int)(Math.random()*10000)+"\n");}fw.close();t=System.currentTimeMillis()-t;System.out.println("The elapsed: "+t);}}2. 生成一个html文件,使其能显示2的幂次(0~9)的表格如下:代码如下:import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{BufferedWriter bw=new BufferedWriter(new FileWriter("d:\\Ex2.html"));bw.write("<table border=1 align=center width=200 height=250>");bw.newLine();bw.write("<tr><td align=center>Power of 2<td align=center>Value</tr>");for(int i=0;i<=9;i++){bw.write("<tr><td align=center>"+i+"<td align=center>"+Math.pow(i, 2)+"</tr>");}bw.write("</table>");bw.newLine();bw.close();}}3. 在文本文件bigbook.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数,并显示统计的时间。

(JAVA)从零开始之--对象输入输出流ObjectInputStream、ObjectO。。。

(JAVA)从零开始之--对象输入输出流ObjectInputStream、ObjectO。。。

(JAVA)从零开始之--对象输⼊输出流ObjectInputStream、ObjectO。

对象的输⼊输出流 : 主要的作⽤是⽤于写⼊对象信息与读取对象信息。

对象信息⼀旦写到⽂件上那么对象的信息就可以做到持久化了 对象的输出流: ObjectOutputStream 对象的输⼊流: ObjectInputStream使⽤:对象的输出流将指定的对象写⼊到⽂件的过程,就是将对象序列化的过程,对象的输⼊流将指定序列化好的⽂件读出来的过程,就是对象反序列化的过程。

既然对象的输出流将对象写⼊到⽂件中称之为对象的序列化,那么可想⽽知对象所对应的class必须要实现Serializable接⼝。

(查看源码可得知:Serializable接⼝没有任何的⽅法,只是作为⼀个标识接⼝存在)。

1、将User类的对象序列化1class User implements Serializable{//必须实现Serializable接⼝2 String uid;3 String pwd;4public User(String _uid,String _pwd){5this.uid = _uid;6this.pwd = _pwd;7 }8 @Override9public String toString() {10return "账号:"+this.uid+" 密码:"+this.pwd;11 }12 }1314public class Demo1 {1516public static void main(String[] args) throws IOException {17//假设将对象信息写⼊到obj.txt⽂件中,事先已经在硬盘中建⽴了⼀个obj.txt⽂件18 File f = new File("F:\\obj.txt");19 writeObjec(f);20 System.out.println("OK");21 }2223//定义⽅法把对象的信息写到硬盘上------>对象的序列化。

输入输出流

输入输出流

输入输出流的相关简介系别:计算机技术与信息管理系班级:09软件技术姓名:徐燕学号:09207745目录一.Java输入输出流详解 (3)1.什么是流: (3)2、流的分类 (3)2.1字节流 (3)2.2.字符流 (4)2.3.对象流 (4)4.字节流与字符流的区别: (4)二.流的层次结构 (5)1.InputStream类 (6)2.OutputStream类 (7)3.FileInputStream类 (7)4.FileOutputStream类 (8)5.File类 (8)6.从一个流构造另一个流 (9)7.BufferInputStream和bufferOutputStream (10)8.printstream (11)三.字符流的读取和写入 (11)1.BufferInputStream和bufferOutputStream (14)2.printstream (15)四.java的i/o输入输出类怎么分出是输入流还是输出流? (15)五.java中什么时候用输入流,什么时候用输出流? (16)六.JA V A输出输入流函数注意事项 (16)1. 处理概述: (17)2. 字节流: (17)2.1输入流: (17)2.2输出流: (18)3、字符流: (18)3.1. 字符流处理概述 (18)3.2. 字符流处理 (19)3.3流处理中的其它方法: (20)七.总结 (21)一.Java输入输出流详解stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。

在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型:1.什么是流:流是一个抽象的概念。

当Java程序需要从数据源读取数据时,会开启一个到数据源的流。

数据源可以是文件,内存或者网络等。

同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。

javaio流学习总结范文

javaio流学习总结范文

javaio流学习总结范文一、io流的三种分类方式1.按流的方向分为:输入流和输出流2.按流的数据单位不同分为:字节流和字符流3.按流的功能不同分为:节点流和处理流二、io流的四大抽象类:字符流:readerwriter字节流:inputstream(读数据)outputstream(写数据)三、inputstream的基本方法intread()throwsioexception读取一个字节以整数形式返回,如果返回-1已到输入流的末尾voidclose()throwsioexception关闭流释放内存资源longskip(longn)throwsioexception跳过n个字节不读四、outputstream的基本方法voidwrite(intb)throwsioexception向输出流写入一个字节数据voidflush()throwsioexception将输出流中缓冲的数据全部写出到目的地五、writer的基本方法voidwrite(intc)throwsioexception向输出流写入一个字符数据voidwrite(stringstr)throwsioexception将一个字符串中的字符写入到输出流voidwrite(stringstr,intoffset,intlength)将一个字符串从offset开始的length个字符写入到输出流voidflush()throwsioexception将输出流中缓冲的数据全部写出到目的地六、reader的基本方法intread()throwsioexception读取一个字符以整数形式返回,如果返回-1已到输入流的末尾七、节点流类型八、访问文件之fileinputstream和fileoutputstream继承基类用于向文件中输入输出字节九、访问文件之filereader和filewriter继承基类用于向文件中输入输出字符----输出流在构造函数第二个参数可以设置true意义为跟在已有文件后进行输入----此类流会抛出filenotfoundexception需要对其进行显示捕捉十、缓冲流:缓冲流要套接在相应的节点流之上,提高了读写的效率。

java 标准输入输出流

java  标准输入输出流

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 标准输入流。

04747 java知识点总结

04747 java知识点总结

第七章:输入和输出流第一节:数据流的基本概念1.在java中,把不同类型的输入、输出源抽象为流,其中输入或输出的数据成为数据流,用统一的接口表示。

2.数据流是指一组有顺序的、有起点和终点的字节集合。

程序从键盘接收数据或向文件中写数据,都可以使用数据流来完成。

3.流分为输入数据流和输出数据流。

输入数据流只能读不能写;而输出数据流只能写不能读。

从数据流中读取数据是,必须有一个数据源与该数据流相连(FileInput Stream in = new FileInputStream(“javatest.txt”);)(实例化)4.Java.io包中提供了表示数据流的4个基本抽象类(不可以实例化),分别是InputStream、OutputStream、Reader和Writer。

因此涉及数据流操作的程序中,几乎都要使用引入语句:import java.io.*5.为了使对象的状态能够方便地永久保存下来,java.io包中又提供了以字节流为基础的用于对象的永久化保存状态的机制,通过实现ObjectInput和Object Output接口来完成。

6.输入数据流提供的主要操作方法有:(得到-1,标志数据流结束)int read():从输入流读取一个字节的二进制数据int read( byte [ ] b):将多个字节读到数组中,填满整个数组int read( byte [ ] b ,int off , int len): 从输入流中读取长度为len的数据,从数组b中下标为off的位置开始放置读入的数据,读毕返回读取的字节数。

7.void close(): 关闭数据流int available(): 返回目前可以从数据流中读取的字节数long skip(long l): 跳过数据流中指定数量的字节不读取,返回值表示实际跳过的字节数8.如需要反向读取数据流,则使用回推操作(Push Back)Boolean markSupported(): 用于测试数据流是否支持回推操作void mark(int): 用于标记数据流的当前位置,并划出一个缓冲区,其大小至少为指定参数的大小。

JAVA输入输出流

JAVA输入输出流
三个基本的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()
9.4常用输入输出流类(2)
FileReader-文件字符输入流
构造方法: public FileReader(String name) throws FileNotFoundException public FileReader(File file) throws FileNotFoundException
方法:参见InputStream FileOutputStream-文件字节输出流
构造方法: public FileOutputStream(String name) throws FileNotFoundException public FileOutputStream(File file) throws FileNotFoundException 方法:参见OutputStream
//标准输出流System.out是字节输出流
//把标准输出流转化成缓冲字节输出流 /用BufferedOutputStream中函数Write输出 //数据从缓冲区中全部输出
import java.io.*; public class Test3 { public static void main(String[] args) throws IOException{ String s = "Hello"; OutputStreamWriter o = new OutputStreamWriter(System.out); o.write(s); 把标准字节输出流转化 成字符输出流 o.flush(); } }

java08(第8章输入输出流)

java08(第8章输入输出流)

在java.io包中定义了很多这二个基本类具体实现 包中定义了很多这二个基本类具体实现 输入输出功能的子类, 输入输出功能的子类,表8.1为部分常用字节输入 为部分常用字节输入 流类和字节输出流子类的功能。 流类和字节输出流子类的功能。
表8.1
类 名 FileInputStream 和 FileOutputStream ByteArrayInputStream和 ByteArrayOutputStream ObjectInputStream 和 ObjectOutputStream FilterInputStream 和 FilterOutputStream DataInputStream 和 DataOutputStream BufferedInputStream 和 BufferedOutputStream
【例8-1 】
1. /* 读取文件 */ 2. import java.io.FileInputStream; 3. import javax.swing.JOptionPane; 4. class Example8_1 5. { public static void main( String args[ ]) 6. { byte buffer[ ] = new byte[2056]; 7. String str; 8. try{ 9. File file=new File("d:/jtest/test.dat"); 10. FileInputStream fileInput = new FileInputStream(file); 11. int bytes = fileInput.read( buffer, 0, 2056 ); //读到的字节数 读到的字节数 12. str = new String( buffer, 0, bytes ); 13. } 14. catch(Exception e) 15. { 16. str= e.toString(); 17. } 18. JOptionPane.showMessageDialog(null,str); 19. System.exit(0); //退出程序 退出程序 20. } 21. }

Java中常用数据类型的输入输出详解

Java中常用数据类型的输入输出详解

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中基本输入输出流的解释

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标准输入输出常用方法

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输入输出流实验报告总结】

java输入输出流实验报告总结】Java输入输出流实验报告总结在本次实验中,我们学习了Java的输入输出流的概念和用法。

输入输出流是Java中用于处理输入和输出操作的工具。

通过输入流,我们可以将外部数据输入到程序中进行处理,通过输出流,我们可以将程序中的数据输出到外部文件或设备上。

在本次实验中,我们通过几个具体的示例来探索输入输出流的不同用法和特性,以期更好地理解和掌握它们的使用。

首先,我们学习了如何使用FileInputStream和FileOutputStream这两个类来进行字节流的输入和输出操作。

这两个类分别用于从指定文件中读取字节数据和将字节数据写入到指定文件中。

通过这两个类,我们可以实现文件的拷贝、移动、创建等功能。

同时,我们还了解了如何使用BufferedInputStream和BufferedOutputStream这两个类来提高读写效率。

这两个类可以通过缓存数据来减少对底层系统的IO操作次数,从而提高读写速度。

接下来,我们学习了如何使用FileReader和FileWriter这两个类进行字符流的输入和输出操作。

这两个类与字节流的输入输出类似,但它们处理的是字符数据。

通过这两个类,我们可以读取和写入文本文件中的字符数据。

我们还了解了字符编码和字符集的概念,并学习了如何使用InputStreamReader和OutputStreamWriter来进行字符流和字节流之间的转换。

除了字节流和字符流,我们还学习了对象流的使用。

对象流可以将Java 对象直接写入到文件中,也可以从文件中读取Java对象。

这在处理一些复杂的对象数据时非常有用。

我们通过使用ObjectInputStream和ObjectOutputStream这两个类,实现了对象的读写操作。

需要注意的是,被写入和读取的对象必须实现Serializable接口,否则会抛出NotSerializableException异常。

在实验过程中,我们还探索了如何使用标准输入输出流。

Java输入输出流(一)——常用的输入输出流

Java输入输出流(一)——常用的输入输出流

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字符集中的所有字符。

详解Java中ByteArray字节数组的输入输出流的用法

详解Java中ByteArray字节数组的输入输出流的用法

详解Java中ByteArray字节数组的输⼊输出流的⽤法ByteArrayInputStream 介绍ByteArrayInputStream 是字节数组输⼊流。

它继承于InputStream。

它包含⼀个内部缓冲区,该缓冲区包含从流中读取的字节;通俗点说,它的内部缓冲区就是⼀个字节数组,⽽ByteArrayInputStream本质就是通过字节数组来实现的。

我们都知道,InputStream通过read()向外提供接⼝,供它们来读取字节数据;⽽ByteArrayInputStream 的内部额外的定义了⼀个计数器,它被⽤来跟踪 read() ⽅法要读取的下⼀个字节。

⽰例代码关于ByteArrayInputStream中API的详细⽤法,参考⽰例代码(ByteArrayInputStreamTest.java):import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;/*** ByteArrayInputStream 测试程序*/public class ByteArrayInputStreamTest {private static final int LEN = 5;// 对应英⽂字母“abcddefghijklmnopqrsttuvwxyz”private static final byte[] ArrayLetters = {0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A};public static void main(String[] args) {String tmp = new String(ArrayLetters);System.out.println("ArrayLetters="+tmp);tesByteArrayInputStream() ;}/*** ByteArrayInputStream的API测试函数*/private static void tesByteArrayInputStream() {// 创建ByteArrayInputStream字节流,内容是ArrayLetters数组ByteArrayInputStream bais = new ByteArrayInputStream(ArrayLetters);// 从字节流中读取5个字节for (int i=0; i<LEN; i++) {// 若能继续读取下⼀个字节,则读取下⼀个字节if (bais.available() >= 0) {// 读取“字节流的下⼀个字节”int tmp = bais.read();System.out.printf("%d : 0x%s\n", i, Integer.toHexString(tmp));}}// 若“该字节流”不⽀持标记功能,则直接退出if (!bais.markSupported()) {System.out.println("make not supported!");return ;}// 标记“字节流中下⼀个被读取的位置”。

输入流与输出流

输入流与输出流
1
第八章 输入与输出流
键盘 程序
数据文件
屏幕 数据文件
综上所述,程序是数据处理中心。 无论是从键盘上读取数据或者从数据文件中读取数据都是由程序决定的。 把程序中的数据输出到屏幕上或者输出到数据文件中都是由程序决定的。
2
第八章 输入与输出流
8.1 流的概念
❖ 输入与输出流(I/O流) (1)输入流:把键盘上输入的数据或者是把数据文件中的数据 读入正在运行的程序中。(网络) (2)输出流:把正在运行的程序中的数据输出到屏幕上或者 输出到数据文件中。
5
第八章 输入与输出流
8.1 流的概念
❖ 字符流类:专门用于字符数据 ❖ 字节流类:用于一般目的
6
10.1 File类
首先讨论10.1.3节的内容,如何使用File类创建对象。对象可以是文件对象, 也可以是目录对象。
(1) 使用一个存在的文件创建一个文件对象;10.1.3 File f=new File("Example10_1.java"); 当前目录下已经存在文件: Example10_1.java
write方法的格式如下: public void write(byte b[]); public void write(byte b[],int off,int len);
作为字节流输入对象的文件,采用read方法按节读入到程序中;
作为字节流输出对象的文件,采用write方法按字节把程序的数据输出到字节 流输出对象的文件中;
10
第八章 输入与输出流
§10.1.4 使用Runtime 类运行可执行文件
◆用Runtime 类声明一个对象( Runtime类在ng包) Runtime ec;
◆ 然后使用该类的getRuntime()静态方法创建这个对象: ec=Runtime.getRuntime();

java 标准输入输出流 print 和println输出的区别

java 标准输入输出流 print 和println输出的区别

java 标准输入输出流print 和println输出的区别
标准输入输出流
1、System类中的静态对象in,标准输入流in
在程序开始之后它会自动开启,对应至键盘或其他的输入来源
2、System.out:标准的输出对象,System类中的静态对象out,标准输出流out
(1)、提供标注输出流(Stream)输出
标准的输出对象的作用:支持定向输出
(2)、通常对应至显示输出(终端机输出)
(3)、可以将输出重新导向至一个文件
如:在当前文件夹下创建一个out.txt文档。

javademo>out.txt 意思是将demo中的结果输出到out.txt中。

javademo>>out.txt 意思是将demo中的结果追加定向输出到out.txt中。

(及保留之前的输出信息
3、System.err:标准的错误输出对象
注:(1)、System.err不支持定向输出
(2)、标准错误输出流err,直接输出到屏幕,让用户马上知道错误
在java中print 和println输出的区别
打印效果
注意:
print()//System.out.print();
print()//System..out.println();如果没有值,就相当于换行原文地址:/showtopic-2241.aspx。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、数据流的基本概念流一般分为输入流(Input Stream)和输出流(Output Stream)两类,但这种划分并不是绝对的。

比如一个文件,当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。

当然,键盘只是一个数人流,而屏幕则只是一个输出流。

java的标准数据流:标准输入输出指在字符方式下(如DOS),程序与系统进行交互的方式,分为三种:标准输入studin,对象是键盘。

标准输出stdout,对象是屏幕。

标准错误输出stderr,对象也是屏幕。

二、java.io包中的数据流和文件类字节流:从InputStream和OutputStream派生出来的一系列类。

这类流以字节(byte)为基本处理单位。

InputStream、OutputStreamFileInputStream、FileOutputStreamPipedInputStream、PipedOutputStreamByteArrayInputStream、ByteArrayOutputStreamFilterInputStream、FilterOutputStreamDataInputStream、DataOutputStreamBufferedInputStream、BufferedOutputStream字符流:从Reader和Writer派生出的一系列类,这类流以16位的Unicode码表示的字符为基本处理单位。

Reader、WriterInputStreamReader、OutputStreamWriterFileReader、FileWriterCharArrayReader、CharArrayWriterPipedReader、PipedWriterFilterReader、FilterWriterBufferedReader、BufferedWriterStringReader、StringWriter三、字节流方法InputStream 和OutputStreamread():从流中读入数据skip():跳过流中若干字节数available():返回流中可用字节数mark():在流中标记一个位置reset():返回标记过得位置markSupport():是否支持标记和复位操作close():关闭流int read() :从输入流中读一个字节,形成一个0~255之间的整数返回(是一个抽象方法)。

int read(byte b[]) :读多个字节到数组中。

int read(byte b[], int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引of f开始的位置,并返回读取得字节数。

write(int b) :将一个整数输出到流中(只输出低位字节,抽象)write(byte b[]) :将字节数组中的数据输出到流中write(byte b[], int off, int len) :将数组b中从off指定的位置开始,长度为len的数据输出到流中flush():刷空输出流,并将缓冲区中的数据强制送出close():关闭流注:进行I/O操作时可能会产生I/O例外,属于非运行时例外,应该在程序中处理。

如:型FileNot FoundException, EOFException, IOException四、文件操作类的方法File类File类声明如下:public class File ectends Object implements Serializable,Comparable构造方法:public File(String pathname)public File(File patent,String child)public File(String patent,String child)文件名的处理String getName( );//得到一个文件的名称(不包括路径)String getPath( );//得到一个文件的路径名String getAbsolutePath( );//得到一个文件的绝对路径名String getParent( );//得到一个文件的上一级目录名String renameTo(File newName); //将当前文件名更名为给定文件的完整路径文件属性测试boolean exists( );//测试当前File对象所指示的文件是否存在boolean canWrite( );//测试当前文件是否可写boolean canRead( );//测试当前文件是否可读boolean isFile( );//测试当前文件是否是文件(不是目录)boolean isDirectory( );//测试当前文件是否是目录普通文件信息和工具long lastModified( );//得到文件最近一次修改的时间long length( ); //得到文件的长度,以字节为单位boolean delete( ); //删除当前文件目录操作boolean mkdir( ); //根据当前对象生成一个由该对象指定的路径String list( ); //列出当前目录下的文件文件过滤器类FilterInputStream和FilterOutputStream分别对其他输入/输出流进行特殊处理,它们在读/写数据的同时可以对数据进行特殊处理。

另外还提供了同步机制,使得某一时刻只有一个线程可以访问一个输入/输出流。

类FilterInputStream和FilterOutputStream分别重写了父类InputStream和OutputStream的所有方法,同时,它们的子类也应该重写它们的方法以满足特定的需要•要使用过滤流,首先必须把它连接到某个输入/输出流上,通常在构造方法的参数中指定所要连接的流:– FilterInputStream(InputStream in);– FilterOutputStream(OutputStream out);注:这两个类是抽象类,构造方法也是保护方法类BufferedInputStream和BufferedOutputStream实现了带缓冲的过滤流,它提供了缓冲机制,把任意的I/O流“捆绑”到缓冲流上,可以提高读写效率•在初始化时,除了要指定所连接的I/O流之外,还可以指定缓冲区的大小。

缺省大小的缓冲区适合于通常的情形;最优的缓冲区大小常依赖于主机操作系统、可使用的内存空间以及机器的配置等;一般缓冲区的大小为内存页或磁盘块等地整数倍,如8912字节或更小。

– BufferedInputStream(InputStream in[, int size])– BufferedOutputStream(OutputStream out[, int size])文件对话框随机文件操作于InputStream 和OutputStream 来说,它们的实例都是顺序访问流,也就是说,只能对文件进行顺序地读/写。

随机访问文件则允许对文件内容进行随机读/写。

在java中,类RandomAccessFile 提供了随机访问文件的方法。

类RandomAccessFile的声明为:public class RandomAccessFile extends Object implements DataInput, DataOutputFile:以文件路径名的形式代表一个文件FileDescriptor:代表一个打开文件的文件描述FileFilter & FilenameFilter:用于列出满足条件的文件File.list(FilenameFilter fnf)File.listFiles(FileFilter ff)FileDialog.setFilenameFilter(FilenameFilter fnf)• FileInputStream & FileReader:顺序读文件• FileOutputStream & FileWriter:顺序写文件• RandomAccessFile:提供对文件的随机访问支持类RandomAccessFile则允许对文件内容同时完成读和写操作,它直接继承Object,并且同时实现了接口DataInput和DataOutput,提供了支持随机文件操作的方法DataInput和DataOutput中的方法•readInt(), writeDouble()…int skipBytes(int n):将指针乡下移动若干字节length():返回文件长度long getFilePointer():返回指针当前位置void seek(long pos):将指针调到所需位置void setLength(long newLength):设定文件长度构造方法:RandomAccessFile(File file, String mode)RandomAccessFile(String name, String mode)mode 的取值–“r” 只读. 任何写操作都将抛出IOException。

–“rw” 读写. 文件不存在时会创建该文件,文件存在时,原文件内容不变,通过写操作改变文件内容。

–“rws” 同步读写. 等同于读写,但是任何协操作的内容都被直接写入物理文件,包括文件内容和文件属性。

–“rwd” 数据同步读写. 等同于读写,但任何内容写操作都直接写到物理文件,对文件属性内容的修改不是这样。

五、字符流的方法Reader类和Writer类在JDK1.1之前,java.io包中的流只有普通的字节流(以byte为基本处理单位的流),这种流对于以16位的Unicode码表示的字符流处理很不方便。

从JDK1.1开始,java.io包中加入了专门用于字符流处理的类,它们是以Reader和Writer为基础派生的一系列类同类InputStream和OutputStream一样,Reader和Writer也是抽象类,只提供了一系列用于字符流处理的接口。

它们的方法与类InputStream和OutputStream类似,只不过其中的参数换成字符或字符数组Reader类• void close()• void mark(int readAheadLimit)• boolean markSupported() :• int read()• int read(char[] cbuf)• int read(char[] cbuf, int off, int len)• boolean ready()• void reset()• long skip(long n)Writer类• void close()• void flush()• void write(char[] cbuf)• void write(char[] cbuf, int off, int len)• void write(int c)• void write(String str)• void write(String str, int off, int len)Java中Scanner的用法Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.Scanner reader=new Scanner(System.in);然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型: next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot()上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。

相关文档
最新文档