本文主要是介绍Java IO:FileInputStream和FileOutputStream使用详解及源码分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 使用方法
FileInputStream即文件输入流,使用它从文件中获得字节流,FileOutputStream即问价输出流,使用它将字节流写入文件。
1.1 方法介绍
FileInputStream提供的API如下:
FileInputStream(File file) // 创建“File对象”对应的“文件输入流”
FileInputStream(FileDescriptor fd) // 创建“文件描述符”对应的“文件输入流”
FileInputStream(String path) // 创建“文件(路径为path)”对应的“文件输入流”int available() // 返回“剩余的可读取的字节数”或者“skip的字节数”
void close() // 关闭“文件输入流”
FileChannel getChannel() // 返回“FileChannel”
final FileDescriptor getFD() // 返回“文件描述符”
int read() // 返回“文件输入流”的下一个字节
int read(byte[] buffer, int off, int len) // 读取“文件输入流”的数据并存在到buffer,从off开始存储,存储长度是len。
long skip(long n) // 跳过n个字节
FileOutputStream提供的API如下:
FileOutputStream(File file) // 创建“File对象”对应的“文件输入流”;默认“追加模式”是false,即“写到输出的流内容”不是以追加的方式添加到文件中。
FileOutputStream(File file, boolean append) // 创建“File对象”对应的“文件输入流”;指定“追加模式”。
FileOutputStream(FileDescriptor fd) // 创建“文件描述符”对应的“文件输入流”;默认“追加模式”是false,即“写到输出的流内容”不是以追加的方式添加到文件中。
FileOutputStream(String path) // 创建“文件(路径为path)”对应的“文件输入流”;默认“追加模式”是false,即“写到输出的流内容”不是以追加的方式添加到文件中。
FileOutputStream(String path, boolean append) // 创建“文件(路径为path)”对应的“文件输入流”;指定“追加模式”。void close() // 关闭“输出流”
FileChannel getChannel() // 返回“FileChannel”
final FileDescriptor getFD() // 返回“文件描述符”
void write(byte[] buffer, int off, int len) // 将buffer写入到“文件输出流”中,从buffer的off开始写,写入长度是len。
void write(int n) // 写入字节n到“文件输出流”中
1.2 使用示例
/*** 在源码所在目录生成一个test.txt,并写入abcdefghijklmn123456*/
public void testFileOutputStream() {try {byte [] content = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'};//床架test.txt文件File file = new File("test.txt");//创建文件输出流FileOutputStream outputStream = new FileOutputStream(file);outputStream.write(content, 0, 14);//PrintStream写入方便PrintStream printStream = new PrintStream(outputStream);printStream.print("123456");printStream.close();} catch (Exception e) {e.printStackTrace();}
}/*** 测试文件输入流*/
public void testFileInputStream() {try {//新建输入流,文件中的内容为abcdefghijklmn123456FileInputStream inputStream = new FileInputStream("test.txt");//读取一个字节aSystem.out.println("读取一个字节: " + inputStream.read());//跳过两个字节 b cinputStream.skip(2);//读取三个字节到buff中defbyte [] buff = new byte[3];inputStream.read(buff, 0, 3);System.out.println("buff中的内容为: " + new String(buff));inputStream.close();} catch (IOException e) {e.printStackTrace();}}
运行结果如下:
读取一个字节: 97
buff中的内容为: def</
这篇关于Java IO:FileInputStream和FileOutputStream使用详解及源码分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!