写出inputstream和outputstream的常用方法

合集下载

转换流:指定编码读取文本文件InputStreamReader和写出文本文件OutputS。。。

转换流:指定编码读取文本文件InputStreamReader和写出文本文件OutputS。。。

转换流:指定编码读取⽂本⽂件InputStreamReader和写出⽂本⽂件OutputS。

⼀、字符编码和字符集1、字符编码计算机中储存的信息都是⽤⼆进制数表⽰的,⽽我们在屏幕上看到的数字、英⽂、标点符号、汉字等字符是⼆进制数转换之后的结果。

按照某种规则,将字符存储到计算机中,称为编码。

反之,将存储在计算机中的⼆进制数按照某种规则解析显⽰出来,称为解码。

如说,按照A规则存储,同样按照A规则解析,那么就能显⽰正确的⽂本f符号。

反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。

字符编码 Character Encoding : 就是⼀套⾃然语⾔的字符与⼆进制数之间的对应规则。

在计算机中,所有的数据在存储和运算时都要使⽤⼆进制数表⽰(因为计算机⽤⾼电平和低电平分别表⽰1和0),例如,像a、b、c、d这样的52个字母(包括⼤写)以及0、1等数字还有⼀些常⽤的符号(例如*、#、@等)在计算机中存储时也要使⽤⼆进制数来表⽰,⽽具体⽤哪些⼆进制数字表⽰哪个符号,当然每个⼈都可以约定⾃⼰的⼀套(这就叫编码),⽽⼤家如果要想互相通信⽽不造成混乱,那么⼤家就必须使⽤相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统⼀规定了上述常⽤符号⽤哪些⼆进制数来表⽰。

2、字符集字符集 Charset :也叫编码表。

是⼀个系统⽀持的所有字符的集合,包括各国家⽂字、标点符号、图形符号、数字等。

计算机要准确的存储和识别各种字符集符号,需要进⾏字符编码,⼀套字符集必然⾄少有⼀套字符编码。

常见字符集有ASCII字符集、GBK 字符集、Unicode字符集等。

可见,当指定了编码,它所对应的字符集⾃然就指定了,所以编码才是我们最终要关⼼的。

1)、ASCII字符集ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的⼀套电脑编码系统,⽤于显⽰现代英语,主要包括控制字符(回车键、退格、换⾏键等)和可显⽰字符(英⽂⼤⼩写字符、阿拉伯数字和西⽂符号)。

ioutils常用方法

ioutils常用方法

ioutils常用方法ioutils是Java编程语言中的一个类,它提供了一些常用的方法来处理输入和输出操作。

在本文中,我们将介绍一些ioutils常用方法,并详细说明它们的功能和用法。

1. readBytes方法readBytes方法用于从输入流中读取字节数据,并将其存储在字节数组中。

该方法的语法如下:```javapublic static byte[] readBytes(InputStream input) throws IOException```使用该方法时,我们需要传入一个输入流对象作为参数,并且需要处理可能抛出的IOException异常。

该方法将返回一个字节数组,其中包含从输入流中读取的数据。

2. write方法write方法用于将字节数组中的数据写入到输出流中。

该方法的语法如下:```javapublic static void write(byte[] data, OutputStream output) throws IOException```使用该方法时,我们需要传入一个字节数组和一个输出流对象作为参数,并且需要处理可能抛出的IOException异常。

该方法将把字节数组中的数据写入到输出流中。

3. copy方法copy方法用于将输入流中的数据复制到输出流中。

该方法的语法如下:```javapublic static long copy(InputStream input, OutputStream output) throws IOException```使用该方法时,我们需要传入一个输入流对象和一个输出流对象作为参数,并且需要处理可能抛出的IOException异常。

该方法将返回复制的字节数。

4. closeQuietly方法closeQuietly方法用于关闭输入流或输出流,而无需显式地处理可能抛出的IOException异常。

该方法的语法如下:```javapublic static void closeQuietly(Closeable closeable)```使用该方法时,我们只需要传入一个可关闭的对象作为参数,该方法将自动关闭该对象。

IO1

IO1
java IO
I/O流概述 流概述
流是一个很形象的概念。
流提供一条通道程序, I/O 流提供一条通道程序,可以使用这条通道把源中的字节 序列送给目的地。 序列送给目的地。
I/O流概述 流概述
为进行数据的输入/输出操作,Java中把不同的输入/输出源(键 盘、文件、网络连接等)抽象表述为“流”(stream)。 数据流(Stream):是一组有顺序的、有起点和终点的字节集 合,是对输入和输出的总称和抽象。 java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能 。 按照流的方向划分, 两种基本的流
接下来看read()方法,使用read()方法读取一个文件,并把内容打印出来。
int read()
private void fun5() { try { File f = new File("c:/1.txt"); long length =f.length(); int length2 = (int)length; FileInputStream fis = new FileInputStream("c:/1.txt"); byte[] buf = new byte[length2]; for (int i = 0; i < buf.length; i++) { buf[i] = (byte)fis.read() ; } String str = new String(buf); System.out.println(str); //不会再打印很多空格 fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

JavaIO流详解(三)----字节流InputStream和OutPutStream

JavaIO流详解(三)----字节流InputStream和OutPutStream

JavaIO流详解(三)----字节流InputStream和OutPutStream我们都知道在计算机中,⽆论是⽂本、图⽚、⾳频还是视频,所有的⽂件都是以⼆进制(字节)形式存在的,IO流中针对字节的输⼊输出提供了⼀系列的流,统称为字节流。

字节流是程序中最常⽤的流。

在JDK中,提供了两个抽象类InputStream和OutputStream,它们是字节流的顶级⽗类,所有的字节输⼊流都继承⾃InputStream,所有的字节输出流都继承⾃OutputStream。

既然⼆者是抽象类,那么就不能实例化,都是依赖于具体继承它们的⼦类去实现。

但⼆者抽象类中也包含它们各⾃的⽅法,如果我们先了解清楚抽象类中每⼀个⽅法的含义,那么对于后续具体的⼦类将会有⾮常⼤的帮助。

1、字节输⼊流InputStreamInputStream是所有字节输⼊流的⽗类,定义了所有字节输⼊流都具有的共同特征。

其内部提供的⽅法如下:image上图中的三个read()⽅法都是⽤来读数据的。

int read():每次读取⼀个字节,返回读取到的字节。

int read(byte[] b):每次读取b 数组长度的字节数,然后返回读取的字节的个数[注意与read() ⽅法的区别],读到末尾时返回-1。

int read(byte[] b,int off,int len):每次读取b 数组长度的字节数,从数组b 的索引为off 的位置开始,长度为len个字节。

⼩贴⼠:close⽅法,当完成流的操作时,必须调⽤此⽅法,释放系统资源。

其中InputStream的实现类FileInputStream是专门⽤于读取⽂件中的数据,通过它将⽬标设备上的数据读⼊到程序。

FileInputStream的构造⽅法:FileInputStream(File file):通过打开与实际⽂件的连接来创建⼀个FileInputStream ,该⽂件由⽂件系统中的File对象file命名。

Java 输入输出 的 基本原理及示例

Java 输入输出 的 基本原理及示例

来自:亿淘城_减肥榜的个人笔记谢谢你的支持(*^__^*) 嘻嘻……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对应,是所有字节输出流类型的抽象父类。

05.IO流、异常处理

05.IO流、异常处理

05.IO流、异常处理基本IO操作RAF 提供了文件随机读写功能,但是没有提供复杂数据的读写功能。

Java 提供了另外一套可以灵活扩展的API: IO流。

IO流在节点流基础之上提供了丰富的的扩展功能,利用这些扩展流可以大大简化IO程序的开发。

1. InputStream与OutputStream1.1. 输入与输出流按照数据流向分为输入流和输入流:什么是输入:输入是一个从外界进入到程序的方向,通常我们需要“读取”外界的数据时,使用输入。

所以输入是用来读取数据的。

InputStream 代表输入流经常缩写为in/包含核心方法read()/关闭方法 close()什么是输出:输出是一个从程序发送到外界的方向,通常我们需要”写出”数据到外界时,使用输出。

所以输出是用来写出数据的。

OutputStream 代表输出流经常缩写为out/包含核心方法write()/关闭方法close() 这两个流是抽象类,不能直接使用。

在实际工作中使用其实现类:文件输出流FileOutputStream1.2. 节点流与处理流按照流是否直接与特定的地方(如磁盘、内存、设备等) 相连,分为节点流和处理流两类。

节点流:可以从或向一个特定的地方(节点)读写数据。

//节点流是流最原始的数据源,提供流最基本的功能。

处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。

//也称为高级流,过滤流,处理流是在其他流的基础之上扩展出更高级的功能。

处理流的核心特点是必须依赖于另外一个流,自己不能独立功能,处理流是对另外的流进行扩展。

处理流的构造方法总是要带一个其他的流对象做参数。

一个流对象经过其他流的多次包装,称为流的链接。

2. 文件流2.1. 创建FOS对象(重写模式)FileOutputStream是文件的字节输出流,我们使用该流可以以字节为单位将数据写入文件。

构造方法:FileOutputStream(File file)创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

JSP FileInputStream和FileOutputStream类

JSP  FileInputStream和FileOutputStream类

JSP FileInputStream和FileOutputStream类字节流由两个类层次结构定义。

在顶层有两个抽象类:InputStream和OutputStream。

每个抽象类都有多个具体的子类,这些子类对不同的外设进行处理,例如磁盘文件,网络连接,甚至是内存缓冲区。

要使用流类,必须导入java.io包。

把文件中的数据读取出来或者向文件中写入数据,可以利用字节流FileInputStream和FileOutputStream来实现。

二种操作的实现过程大致相同,首先都是在文件和程序建立一个管道(可以将该操作虚拟为一个管道或通道),管道建立好后,可以向文件中读取或者写入数据,操作完毕后,关闭该管道。

1.FileInputStream类FileInputStream是Java流中比较常用的一种,它是从java.io.InputStream中继承过来的简单输入类。

FileInputStream表示从文件系统的某个文件中获取输入字节,哪些文件可用取决于主机环境。

通过使用FileInputStream可以访问文件的一个字节、几个字节或整个文件。

FileInputStream常用构造函数如表7-6所示:表7-6 FileInputStream构造函数可以使用上面表格中的构造函数创建输入流的实例化对象。

在创建过程中,这些构造函数可能引发FileNotFoundException异常,需要使用try-catch语句进行捕获。

下面的例子创建了两个使用同样磁盘文件且各含一个上述构造函数的FileInput第一个构造函数可能更常用到,第二个构造函数允许在把文件赋给输入流之前用File方法进一步检查文件。

当一个FileInputStream被创建时,它可以被公开读取,即在程序和文件之间建立通道。

2.FileOutputStream类文件输出流是用于将数据写入File或FileDescriptor的输出流。

文件是否可用或能否可以被创建取决于基础平台。

java中inputstream用法

java中inputstream用法

java中inputstream用法Java中的InputStream是一个抽象类,它是所有输入流的父类。

InputStream提供了一些方法来读取字节流,可以从文件、网络、内存等多种数据源中读取数据。

本文将详细介绍Java中InputStream 的用法。

一、InputStream概述1.1 InputStream的作用InputStream用于从各种数据源中读取字节流。

它提供了一些方法来读取字节流,并且可以处理不同类型的数据源,包括文件、网络、内存等。

1.2 InputStream的继承关系InputStream是一个抽象类,它有许多子类,如FileInputStream、ByteArrayInputStream、PipedInputStream等。

1.3 InputStream的常用方法常用方法如下:- int read():从输入流中读取一个字节,并返回该字节的值。

如果已经到达流的末尾,则返回-1。

- int read(byte[] b):从输入流中读取一定量的字节,并将其存储在缓冲区数组b中。

返回实际读取的字节数。

- int read(byte[] b, int off, int len):从输入流中读取最多len个字节,并将其存储在缓冲区数组b中,开始存储位置为off。

返回实际读取的字节数。

- long skip(long n):跳过并丢弃此输入流中n个字节。

- int available():返回此输入流可以不受阻塞地从此输入流中读取(或跳过)的字节数。

- void close():关闭此输入流并释放与该流关联的所有系统资源。

二、InputStream子类2.1 FileInputStreamFileInputStream用于从文件中读取数据。

它继承自InputStream类,可以使用read()方法从文件中读取一个字节,并返回该字节的值。

如果已经到达文件的末尾,则返回-1。

2.2 ByteArrayInputStreamByteArrayInputStream用于从内存中读取数据。

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

任务名称:inputstream和outputstream的常用方法
一、什么是InputStream和OutputStream
在Java中,InputStream和OutputStream是两个重要的抽象类,用于处理输入和输出流。

InputStream用于读取数据流,而OutputStream用于写入数据流。

这两个类是Java I/O库的核心组成部分,提供了丰富的方法来读取和写入不同类型的数据。

二、InputStream的常用方法
1. read()方法
read()方法是InputStream类中最基本的方法之一,用于从输入流中读取一个字节的数据。

它的返回值是int类型,表示读取的字节数据的ASCII值。

如果已经到达流的末尾,则返回-1。

2. read(byte[] b)方法
read(byte[] b)方法是InputStream类中另一个常用的方法,用于从输入流中读取多个字节的数据,并存储到指定的字节数组中。

该方法返回值是int类型,表示实际读取的字节数。

如果已经到达流的末尾,则返回-1。

3. available()方法
available()方法用于获取输入流中可读取的字节数。

它的返回值是int类型,表示可读取的字节数。

4. close()方法
close()方法用于关闭输入流。

在使用完输入流后,应该调用该方法来释放资源。

三、OutputStream的常用方法
1. write(int b)方法
write(int b)方法是OutputStream类中最基本的方法之一,用于向输出流中写入一个字节的数据。

参数b是要写入的字节数据的ASCII值。

2. write(byte[] b)方法
write(byte[] b)方法是OutputStream类中另一个常用的方法,用于向输出流中写入一个字节数组的数据。

参数b是要写入的字节数组。

3. flush()方法
flush()方法用于刷新输出流。

在使用输出流写入数据后,有时需要立即将数据发送出去,而不是等到缓冲区满或关闭流时才发送。

此时可以调用flush()方法来实现。

4. close()方法
close()方法用于关闭输出流。

在使用完输出流后,应该调用该方法来释放资源。

四、使用InputStream和OutputStream读写文件
使用InputStream和OutputStream可以方便地读写文件。

下面是一个示例代码:import java.io.*;
public class FileReadWriteExample {
public static void main(String[] args) {
try {
// 创建输入流
InputStream inputStream = new FileInputStream("input.txt");
// 创建输出流
OutputStream outputStream = new FileOutputStream("output.txt");
// 读取并写入数据
int data;
while ((data = inputStream.read()) != -1) {
outputStream.write(data);
}
// 关闭流
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代码中,我们创建了一个输入流和一个输出流,然后使用while循环来读取输入流中的数据,并写入到输出流中。

最后,我们关闭了输入流和输出流。

五、总结
本文介绍了InputStream和OutputStream的常用方法,并给出了一个使用示例。

InputStream提供了read()和read(byte[] b)等方法来读取输入流中的数据,而OutputStream提供了write()和write(byte[] b)等方法来写入输出流中的数据。

此外,还介绍了一些其他常用的方法,如available()、close()和flush()。

通过学习和掌握这些方法,我们可以方便地进行输入和输出流的操作,实现文件的读写等功能。

相关文档
最新文档