File的方法有:
exists()表示这个抽象路径表示的文件或者目录是否已经存在。
createNewFile()表示重新创建一个文件。
String getPath()将抽象路径名转换为一个路径名的字符串
isAbsolute()测试抽象路径是否为绝对路径名。
isDirectory()测试抽象路径名是否表示一个文件是否是一个目录。
isFile()测试一个抽象路径名是否表示一个标准的文件
isHidden()测试一个抽象路径名是否表示一个隐藏的文件
当所使用的抽象路径名表示的是一个目录的话。
用list()可返回当前目录下的所有目录名以及文件名字的字符串。
listfile()表示返回文件
mkdir()表示创建一个抽象目录下一个必要的目录。
mkdirs()白哦是创建一个目录,如果存在不存在的父目录的话,则依旧创建符目录。
对于可以对文件内容操作的类有RandomAccessFile;
“r”只读。
“rw”可读可写,如果不存在此文件,则直接创建一个。
“rws”以及”rwd”另行查找。
他的构造方法是RandomAccessFile(File f,String mode);
writeBytes(String s)将字符串按照字节进行输出。
writeByte(char v)
writeChars(String s)将字符串按照双字节进行输出
writeInt()WriteFloat()……….
read()读一个字节数据
read(Byte [])用于读取b.length
read(byte [] b,int off,int len)
readBytes()
readFully(Byte b[])从当前指针开始进行读取b.length个字节的数据。
ReadByte()分别于write()相对应。
《
RandomAccessFile是用来访问那些保存数据记录的文件的
对文件内容进行操作,通过创建一个操作流对象的同时打开了文件,所以在最后要调用close()关闭文件
》
字节流
OutputStream类
public abstract class OutputStream
extends Closeable,Flushable;
Flushable 中的flush()方法用于将缓冲区中的数据输入到底层的存储设备中来刷星此流。
InputStream类
public abstract class InputStream
extends Closeable
字符流:
Write类
Reader类
通过IO流对文件内容进行操作一般有以下几个步骤:
一:使用File关联一个文件。
通过字节流或者是字符流制定输出的位置
读以及写的操作,
关闭输入以及输出。
子类以及父类的关系
OutputStream->FileOutputStream
String.getBytes()可以将字符串转换为Byte[]类型。
对于FileOutputStream文件输出流而言,只能对byte类型以及char类型的数据进行输入,所以不管是什么类型都呀装换为byte类型才能进行写入。
(这个类的构造不需要声明是写,因为他已经是写了)。
他的方法有:
write(byte [] b);
write(byte [] b,int off,int len)
write(int v);用于Char类型的数据写入
他的构造方法中有几个方法,颇为重要(期间可能会抛出FileNotFoundException异常)
FileOutputStream(String name)//默认是直接抹去文件中的内容然后进行写操作
FileOutputStream(String name,boolean append)//第二个参数的选择代表是否直接在文件内容尾部进行增添数据。
FileOutputStream(File f);
FileOutputStream(File f,boolean append);
/*************************************************/
import java.io.File;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String [] agrs)
throws IOException
{
File a=new File("D:"+File.separator+"imput.txt");
FileOutputStream b=new FileOutputStream(a);
String str="Hello world!!!";
byte [] k=str.getBytes();
b.write(k);
b.write('a');
b.close();
FileOutputStream c=new FileOutputStream("D:"+File.separator+"imput.txt",true);
c.write(k);
c.close();
}
}
/*************************************************/
InputStream->FileInputStream
对于这个类的构造方法只有两个比较常见:(会与输出流一样可能抛出异常)
FileInputStream(String name);
FileInputStream(File name);
其他用于文件操作的方法:
read()只读取一个字节的数据
read(byte [] b)读取最大b.length哥字节大小的数据
read(byte [] b,int off,int len)读取从指定位置开始的最大len的数据。
skip(long n)跳过b个字节的数据。(实际上就是将指针向后移动n个位置)
接下来是字符流的使用:
对于输出流而言:
FileWriter的构造方法与FileOutputStream的方法一模一样。(FileWriter主要用来对字符进行写入)
对数据的写入,由于他实现的接口以及继承东西多,所以几乎可以对所以有关字符的东西都可以进行写入。
此处不详细介绍。
对于输入流而言:
FileReader的构造方法以及其他方法的使用与FileWriter基本一样。
在Java中字符流以及字节流都是非常重要的;所以有必要有类可以对他们进行直接或者间接的转换;
所以有了
OutputStreamWriter是Writer的子类,表示将输出字节流转换为字符流(将一个字符流的对象转换为字节流)
InputStreamReader将输入的字节流转换为字符流。
对于一个文件而言,数据的保存都是以字节的形式,所以内存中字符数据要保存在文件里必须是字节型的,所以要用装换类将他转换。
所以对于OutputSreamWriter这个类而言有几个构造方法
OutputStreamWriter(OutputStream out)必须有字节流作为构造参数进行转换
《将字节流装换为字符流的好处是可以直接对字符相关的对象或者是变量进行读写操作》
以上都是基于文件操作。。。。。。。。。。。。。。。。。。。。。。。