abstract int read()
abstract void write(int b)
输入/输出 | 字节流 | 字符流 |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
常用方法 | 描述 |
public abstract int read( ) | 从输入流中读取下一个字节数据。返回字节使用高位补0的int类型值表示(0-255),若返回值为-1说明没有读取到任何字节,输入流达到尽头。 |
public int read(byte b[ ]) | 从输入流中读取b.length个字节的数据放到字节数组b中。返回值是读取的字节数。如果字节数组的长度为0,不会读取任何字节数据,返回0,否则至少尝试去读取一个字节的数据。如果没有获取到字节数据,表示流到达文件末尾,返回-1。第一个读取的字节存储在b[0],以此类推。 |
public int read(byte b[ ], int off, int len) | 从输入流中读取至多len个字节的数据放到字节数组b中。返回值是读取的实际字节数。如果字节数组的长度为0,不会读取任何字节数据,返回0,否则至少尝试去读取一个字节的数据。如果没有获取到字节数据,表示流到达文件末尾,返回-1。第一个读取的字节存储在b[off],下一个存储在b[off+1],以此类推。 |
public int available( ) | 返回输入流中可以读取的字节数。注意:若输入阻塞,当前线程将被挂起,如果InputStream对象调用这个方法的话,它只会返回0,这个方法必须由继承InputStream类的子类对象调用才有用。注意:虽然很多InputStream的实现类可以正确的返回输入流的总字节数,但是并不是全都都可以。所以使用这个方法的返回值去分配字节大小来容纳输入流的所有数据一定不是一个正确的方法。 |
public long skip(long n) | 忽略输入流中的n个字节,返回值是实际忽略的字节数, 如果为负数,表示没有跳过任何字节数据。 |
public int close( ) | 关闭输入流,释放分配给输入流的系统资源。 |
类 | 功能 |
ByteArrayInputStream | 允许将内存中缓冲区当做InputStream使用 |
StringBufferInputStream | 将String转换成InputStream |
FileInputStream | 用于从文件中读取信息 |
PipedInputStream | 产生用于写入相关PipedOutputStream的数据。实现“管道化”概念。 |
SequenceInputStream | 将两个或者多个InputStream对象转换成单一InputStream |
FilterInputStream | 抽象类,作为“装饰器”的接口。其中,“装饰器”为其他的InputStream类提供有用的功能。 |
常用方法 | 描述 |
public abstract void write(int b) | 将指定字节写入到输出流中。一般是将参数b的低八位(一个字节)写入到输出流中。b的高八位被忽略掉。 |
public void write(byte[] b) | 从字节数组b中向输出流中写入b.length个字节数据。 |
public void write(byte[] b,int off,int len) | 从字节数组b偏移位置为off的开始位置向输出流写入len个字节数据。b[off]是第一个被写入的字节,b[off+len-1]是最后一个被写入的字节。如果b为null,会抛出NullPointer异常;如果off或者len是负数,或者off+len比字节数组b的长度大,则会抛出IndexOutOfBoundsException异常。 |
public void flush() | 清空输出流,并强制将所有缓冲的输出字节被写出。 |
public void close() | 关闭输出流,释放分配给输出流的系统资源。 |
类 | 功能 |
ByteArrayOutputStream | 在内存中创建缓冲区,所有送往“流”的数据都要放置在此缓冲区。 |
FileOutputStream | 用于将信息写至文件。 |
PipedOutputStream | 任何写入其中的信息都会自动作为PipedInputStream的输出。实现“管道化”概念。 |
FilterOutputStream | 抽象类,作为“装饰器”的接口。其中,“装饰器”为其他的OutputStream类提供有用的功能。 |
构造方法 | 描述 |
FileInputStream(String name) | 使用由name字符串指定路径名文件创建FileInputStream对象 |
FileInputStream(File file) | 使用由file对象指定路径名的文件创建FileInputStream对象 |
// FileInputStream(String name)
String path = "D:\\Recommended system.txt";
FileInputStream stream = new FileInputStream(path);
// FileInputStream(File file)
File file = new File(path);
FileInputStream stream2 = new FileInputStream(file);
package com.qunar.io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class IOUtil {
public static void main(String[] args) {
try {
String path = "D:\\demo.txt";
FileInputStream stream = new FileInputStream(path);
int num = 100;
byte[] buff = new byte[num];
while((stream.read(buff,0,num)) != -1){
System.out.println("NewLine->"+new String(buff));
}//while
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
NewLine->My father was a self-taught mandolin player. He was one of the best string instrument players in our
NewLine-> town. He could not read music, but if he heard a tune a few times, he could play it. When he was yo
NewLine->unger, he was a member of a small country music band. They would play at local dances and on a
NewLine->ccasions would play for the local radio station. He often told us how he had auditioned and earned a
NewLine-> position in a band that featured Patsy Cline as their lead singer. He told the family that after he
NewLine-> was hired he never went back. Dad was a very religious man. He stated that there was a lot of drink
NewLine->ing and cursing the day of his audition and he did not want to be around that type of environment.nk
|
构造函数 | 描述 |
FileOutputStream(String name) | 使用由name字符串指定路径名的文件创建一个新的文件输出流。 |
FileOutputStream(String name,boolean append) | 使用由name字符串指定路径名的文件创建一个新的文件输出流。如果append参数为true,那么数据将被添加到文件末尾,而具有相同名字的已有文件不会被删除(末尾添加数据);否则这个方法删除所有具有相同名字的已有文件。 |
FileOutputStream(File file) | 使用由file对象指定路径名的文件创建一个新的文件输出流。 |
FileOutputStream(File file,boolean append) | 使用由file对象指定路径名的文件创建一个新的文件输出流。如果append参数为true,那么数据将被添加到文件末尾,而具有相同名字的已有文件不会被删除(末尾添加数据);否则这个方法删除所有具有相同名字的已有文件。 |
package com.qunar.io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtil {
public static void main(String[] args) {
try {
String path = "D:\\from.txt";
String path2 = "D:\\to.txt";
FileInputStream inputStream = new FileInputStream(path);
FileOutputStream outputStream = new FileOutputStream(path2);
int num = 100;
byte[] buff = new byte[num];
// 由文件写至内存
while((inputStream.read(buff,0,num)) != -1){
// 由内存写至文件中
outputStream.write(buff);
}//while
inputStream.close();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.qunar.io;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtil {
public static void main(String[] args) {
try {
String path = "D:\\to.txt";
// 向文件写入操作
FileOutputStream outputStream = new FileOutputStream(path);
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
// 向文件中写入一个Int值
dataOutputStream.writeInt(10);
// 向文件中写入一个Double值
dataOutputStream.writeDouble(0.98);
// 向文件中写入一个Long值
dataOutputStream.writeLong(12l);
// 向文件中写入一个UTF-8编码值
dataOutputStream.writeUTF("我来自西安电子科技大学");
//从文件读取操作
FileInputStream inputStream = new FileInputStream(path);
DataInputStream dataInputStream = new DataInputStream(inputStream);
// 从文件中读取一个Int值
System.out.println("从文件中读取一个Int值:" + dataInputStream.readInt());
// 从文件中读取一个Double值
System.out.println("从文件中读取一个Double值:" + dataInputStream.readDouble());
// 从文件中读取一个Long值
System.out.println("从文件中读取一个Long值:" + dataInputStream.readLong());
// 从文件中读取一个UTF-8编码值
System.out.println("从文件中读取一个UTF-8编码值:" + dataInputStream.readUTF());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
从文件中读取一个Int值:10
从文件中读取一个Double值:0.98
从文件中读取一个Long值:12
从文件中读取一个UTF-8编码值:我来自西安电子科技大学 |