学习总结-操作文件,IO流

操作文件

创建File类对象:

File 对象名 = new File(String path);

File 对象名 = new File(String Path,String name);

File 对象名 = new File(File dir,String name)。

说明:参数 path 指明了新创建的 File 对象对应的磁盘文件或目录名及其路径名,path 参数也可以对应磁盘上的某个目录;参数 name 表示文件或目录名;参数 dir 为另一个已存在的代表某磁盘目录的File 对象,表示文件或目录的路径。

常用方法:

public String getName() 获取文件或目录的名字。

public boolean canRead() 获取文件的可读属性,如果为可读文件,返回 true。

public boolean canWrite() 获取文件的可写属性,如果为可写文件,返回 true。

public boolean exists() 判断文件或目录是否存在,如果存在返回 true,否则返回 false。

public long length() 获取文件的长度(单位是字节)。

public String getAbsolutePath() 获取文件的绝对路径。“c:/file/hello.txt”

public String getParent() 获取文件的父目录。“c:/file”

public boolean isFile() 判断否是为文件,如果对象代表有效文件,则返回 true。

public boolean isDirectroy() 判断否是为目录,如果对象代表有效目录,则返回 true。

public boolean isHidden() 判断文件是否是隐藏文件。

public long lastModified() 获取文件最后修改的时间(时间是从 1970 年午夜至文件最后修改时刻的毫秒数)。

public String[] list() 用字符串形式返回目录下的全部文件。

public File[] listFiles() 用 File 对象形式返回目录下的全部文件。


创建一个文件:

try{
File file1 = new File("d:\\xyz.txt");
if(file1.createNewFile()){      //必须要运行这步才会产生一个新文件,但会产生一个异常
System.out.println("文件创建成功!");
}else{
System.out.println("文件已经存在");
}
}catch(IOException e){
e.printStackTrace();
}


删除文件:

File.delete();  方法类似于File.createNewFile();   也是个boolean类型


重命名文件:

有可能在*nix 平台下能成功地重命名一个文件,而在 Windows 平台下会失败

if(oldfile.renameTo(newfile)){
System.out.println("文件重命名成功。");
}else{
System.out.println("文件重命名失败。");
}


IO流

IO流按流向分为2类:输入流(可读不可写)和输出流(可写不可读)

IO流按数据性质分为2类:字节流(不常用)和字符流(常用)

所有字节流处理类都继承自InputStream和OutputStream

InputStream类常用方法:

int read( );读取一个字节,返回值为所读的字节。

int read( byte b[ ] );读取多个字节,放置到字节数组 b 中,通常读取的字节数量为 b 的长度,返回值为实际读取的字节的数量。

int read( byte b[ ], int off, int len );读取 len 个字节,放置到以下标 off 开始字节数组 b 中,返回值为实际读取的字节的数量。

int available( );返回值为流中尚未读取的字节的数量。

long skip( long n );读指针跳过 n 个字节不读,返回值为实际跳过的字节数量。

close( );流操作完毕后必须关闭。

void mark( int readlimit );记录当前读指针所在位置,readlimit 表示读指针读出 readlimit 个字节后所标记的指针位置才失效。

void reset( );把读指针重新指向用 mark 方法所记录的位置。

boolean markSupported( );当前的流是否支持读指针的记录功能。

OutputStream类常用方法:

void write( int b );往流中写一个字节 b。

void write( byte b[ ] );往流中写一个字节数组 b。

void write( byte b[ ], int off, int len );把字节数组 b 中从下标 off 开始,长度为 len 的字节写入流中。

flush( );把缓存中所有内容强制输出到流中。

close( );流操作完毕后必须关闭。

文件输入流 FileInputStream 类与文件输出流 FileOutputStream 类:

通过文件的路径名来构造相应的流,如:

FileInputStream infile = new FileInputStream("myfile.dat");  //对应的文件必须存在并且是可读的,FileInputStream是InputStream的子类,方法即继承而来

FileOutputStream outfile = new FileOutputStream("results.dat");  //如输出文件已存在,则必须是可覆盖的。

FileOutputStream是OutputStream的子类,但还有2个构造器:

FileOutputStream(String name)   //使用给定的文件名 name 创建一个 FileOutputStream 对象

FileOutputStream(File file)  //使用 File 对象创建 FileOutputStream 对象

同时使用读取和写入这两个类可以实现文件的拷贝功能


字符流

Reader类和Writer类:

Reader类是所有字符输入流的祖先

Writer类是所有字符输出流的祖先

FileReader 类和 FileWriter 类分别是 Reader 和 Writer 的子类,其构造方法分别是:

FileReader(String filename);

FileReader(File f);

FileWriter(String filename);

FileWriter(File f)。

FileReader 类:

创建FileReader类的对象的方法:FileReader fr=new FileReader(filename);

FileReader 类中的 read()方法用来读取字符并返回一个相应的 int 类型数据。当读到文件的结尾处时,则返回数值-1。在完成文件数据的读取后需要使用 close()方法关闭打开的文件。

FileWriter 类:

创建 FileWriter 类对象的格式为:

FileWriter fr=new FileWriter (filename);   //文件名必须是文件的完整路径和文件名,如果程序和该文件保存在同一目录下,则可以只用文件名而不需要其路径。如果该文件名不存在,则系统会自动创建该文件

FileWriter 类中的 write()方法可以将字符或者字符串吸入文件中。当完成数据写入操作后,使用 close()方法关闭文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值