File I/O

File I/O

一、操作文件或目录的属性

 创建一个File对象的语法格式如下:

File file =new File(String pathName);

例如:File file =new File(“C:\\test.txt”); 


File类的常用方法:

boolean  exists()  判断文件或目录是否存在

boolean isFile() 判断是否是文件

boolean isDirectory() 判断是否是目录

String getPath() 返回此对象表示的文件的相对路径名

String getAbsolutePath() 返回此对象表示的文件的绝对路径名

String getName() 返回此对象表示的文件或目录的名称

boolean delete() 删除此对象指定的文件或目录

boolean createNewFile() 创建指定名称的空文件,不创建文件夹

long length() 返回文件的长度,单位为字节,若文件不存在,则返回0L

二、Java的流

1.按照流的流向进行划分,可以将流分为输入流和输出流

注意:这里的输入输出都是从程序运行所在的内存角度来划分的。

2.按照所操作的数据单元的不同,流又可分为字节流和字符流。

字节流用于二进制的数据:

字节输入流InputStream基类

字节输出流OutputStream基类

字符流用于文本(中文字符):

字符输入流Reader基类

字符输出流Writer基类





三、读写文本文件

字节流

1、输入流

基类:InputStream

子类:FileInputStream

构造:

FileInputStream(File file)

FileInputStream(String name)

方法:

int read()  读取一个字节数组

int read(byte[] b) 将数据读取到字节数组中

int read(byte [] b ) 从输入流中读取最多len长度的字节,保存到字节数组b,保存的位置从off开始

void close() 关闭输入流

int available() 返回输入流读取的估计字节数

示例:

1)、引入相关的类

import java.io.InputStream;

2)、创建一个文件输入流对象

InputStream fis=new FileInputStream(“/Users/wojiaoyelei/Documents/workspace/java3/newFile.txt");

3)、利用文件输入流的方法读取文本文件的数据

fis.read();

4)、关闭文件输入流对象

fis.close();


2、输出流:

基类:OutputStream

子类:FileOutputStream

构造:

FileOutputStream(File file)

file 指定文件目标数据源。

FileOutputStream(String name)

name 指定文件目标数据源,包含路径信息。

FileOutputStream(String name, boolean append) 

name 指定文件目标数据源,包含路径信息。append 表示是否在文件末尾添加数据,若设置为true,则在文件末尾添加数据。

方法:

close()关闭流

flush() 刷新缓冲区

write(byte[]b)  写入数组b的所有字节

write(byte[]b, int off, int len)  将字节数组从off位置开始,长度为len的字节数据输出到输出流中。

write(int b) 写入一字节数据

示例:

1)、引入相关的类。

2)、构造一个文件输出流对象。

OutputStream fos=new OutputStream(“C:\\test.txt”);

3)、利用文件输出流的方法把数据写入文本文件中

String str=“大大”;

byte[] words=str.getBytes();

//利用write方法将数据写入文件中

fos.write(words,0,words.length);

4)、关闭文件输出流

fos.close();



字符流

1.输入流

基类:Reader

子类:FileReader,BufferedReader

构造方法:

FileReader(String fileName)指要从中读取数据的文件的名称

BufferedReaderReader in):

常用方法:

int read() 从输入流中读取单个字符

int read(byte[] c)  从输入流中读取c.length长度的字符,保存到字符数组c中,返回实际读取的字符数

read(char[] c,int off, int len ) 从输入流中读取最多len长度的字符,保存到字符数组c中,保存的位置从off开始,返回实际读取的字符长度

void close() 关闭流

BufferedReader示例:

1)引入相关的类

2)创建一个BufferedReader对象

Reader fr=new FileReader(“C:\\Test.txt”);

BufferedReader br=new BufferedReader(fr);


3)利用BufferedReader类的方法读取文本文件的数据

br.readLine();//读取一行数据

String line=br.readLine();

while(line!=null){

             System.out.println(line); 

             line=br.readLine();

}//读取整个文件的数据

4)关闭流


2.输出流

基类:Writer

子类:FileWriter,BufferedWriter

构造:

常用方法:

write(String str) str字符串里包含的字符输出到指定的输出流中

write(String str, int off, int len) str字符串里从off位置开始长度为len的字符输出到输出流中

void close() 关闭输出流

void flush() 刷新输出流


BufferedWriter示例:

1)引入相关类

2)构造一个BufferedWriter对象

3)利用BufferedWriter类的方法写文本文件

bw.write(“hello”);

4)相关流对象的清空和关闭

bw.flush();//刷新流的缓冲

fw.close();//关闭此流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值