Java IO总结

来源:互联网 发布:sqlserver 2005 下载 编辑:程序博客网 时间:2024/05/02 04:33

File总结

1.File类用来将文件或者文件夹封装成对象。方便对文件与文件夹进行属性信息进行操作。

2.File对象可以作为参数传递给流的构造函数。

3.构造方法:

1)public File(File parent, String child)

2)public File(String pathname)

3)public File(String parent,String child)

4)public File(URI uri)

4.常用方法:

1)public static final String separator:属性,与系统有关的默认名称分隔符,可以跨平台。

使用格式举例:"D:"+File.separator+"a.txt"

1.创建:

 boolean  createNewFile():在指定为位置创建文件。若原来没有文件,创建成功,有则创建失败。与输出流不一样(输出流会覆盖原文件)。

boolean mkdir():可以一次创建单个目录,不能一次创建一串目录。

public boolean mkdirs():创建多级目录。 

2.删除:

boolean delete():删除失败返回false。如果被删除文件之前发生,可能执行不到。不用try catch,因为执行中的文件,无法删除。用deleteOnExit

void deleteOnExit():在程序退出时删除。

3.判断:

canExecute():测试应用程序是否可以执行此抽象路径名表示的文件。

int compareTo(File pathname):按字母顺序比较两个抽象路径名。

public boolean exists():文件是否存在

记住:在判断文件对象是否是文件或者文件夹时,必须要先判断该文件或文件夹是否存在。通过exit()判断。

public boolean isDirectory(): 判断是否是文件夹。

public boolean isFile():判断是否是文件。 

public boolean isHidden():是否隐藏。java不处理隐藏文件。可能会取取出来,需要判断一下。

public boolean isAbsolute():测试此抽象路径名是否为绝对路径名。绝对路径名的定义与系统有关。

4.获取信息

public String getName()

public String getParent():该方法返回的是绝对目录下的父目录。如果调用该方法的是相对路径,返回的是null。如果相对路径中有上一层目录,那么该目录就是返回结果。

public String getPath():返回相对路径

public String getAbsolutePath():返回抽象路径名的绝对路径名字符串。

public long lastModified():返回此抽象路径名表示的文件最后一次被修改的时间。 

public long length():返回由此抽象路径名表示的文件的长度。如果此路径名表示一个目录,则返回值是不确定的。       

public boolean renameTo(File dest):重命名

举例:File1 f1=new File("c:\\hh.txt");

      File2 f2=new File("c:\\ss.txt");

      f1.renameTo(f2);

将c盘的文件hh.txt,重命名为ss.txt。也可改名移动到D盘。

public static File[] listRoots():列出可用的文件系统根目录。

public String[] list():返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。 (包含隐藏文件。)

Properties

Properties是hashtable的子类;

 * 也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。

 * 是集合中和IO技术相结合的集合容器。

 * 该对象的特点:可以用于键值对形式的配置文件。

 * 那么在加载数据时,需要数据有固定格式:键=值。

构造方法:

1)public Properties():创建一个无默认值的空属性列表。

2)public Properties(Properties defaults):创建一个带有指定默认值的空属性列表。

常用方法:

public Object setProperty(String key,String value):直接将键值信息存入集合中。有相同键值时,将修改原键值内容。

public String getProperty(String key):没有时返回null。

public String getProperty(String key,String defaultValue):没有时返回默认值defaultValue。

Public Set<String> stringPropertyNames():1.6版本后出现的。获取集合中名字集合。

public void load(InputStream inStream)throws IOException:从输入流中读取属性列表(键和元素对)。符合键值对的形式。

public void store(OutputStream out,String comments)throws IOException :将键值信息存储到输出流中。如果不调用此方法,setProperty设置的信息无法存入文件中。

打印流;该流提供了打印方法,可以将各种数据类型的数据都原样打印.

字节打印流;PrintStream

构造函数可以接收的参数类型:

1.file对象。File

2.字符串路径:String;

3.字节输出流:outputStrem。

字符打印流:PrintWriter

构造函数可以接收的参数类型:

1.file对象。File

2.字符串路径:String;

3.字节输出流:outputStrem。

4.字符输出流:Writer

PrintWriter pw=new PrintWriter( 参数 )。参数可以使文件夹,可以是输出流,可以是输出台。

可以直接指定输出的文件等地方,println(参数)方法带有直接换行功能。

有些构造方法定义有自动换行功能,有些构造方法没有,这时需要手动加上flush()方法。

可以读取多个流的:SequenceInputStream

序列流:切个对象:

while((num=fis.read(buf))!=-1){

fos=new FileOutputStream("F:\\"+(count++)+".part");

fos.write(buf,0,num);

fos.close();

}

操作对象:ObjectInputStream    ObjectOutputStream

RandomAccessFile :随即访问文件,自身具备读写方法。通过skipByte(int),seek(int x)来达到随即访问。

PipedInputStream  ,PipedOutputStream:管道流,输入输出可以进行直接连接,通过结合线程使用。

FileInputStream和FileOutputStream 

节点流,用于从文件中读取或往文件中写入字节流。如果在构造 FileOutputStream时,文件已经存在,则覆盖这个文件。 

• BufferedInputStream和BufferedOutputStream 

过滤流,需要使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率。 

• DataInputStream和DataOutputStream 

过滤流,需要使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。 

• PipedInputStream和PipedOutputStream 

管道流,用于线程间的通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有 

用,必须同时构造管道输入流和管道输出流。 

ByteArrayInputStream是把字节数组当成源的输入流。该类有两个构造方法,每个构造方法需要一个字节数组提供数据源。

–ByteArrayInputStream(byte array[ ]) 

–ByteArrayInputStream(byte array[ ], int start, int numBytes) 

–这里,array是输入源。

ByteArrayOutputStream是一个把字节数组当作输出流的实现。ByteArrayOutputStream 有两个构造方法 

– ByteArrayOutputStream( ) 

– ByteArrayOutputStream(int numBytes) 

– 在第一种形式里,一个32位字节的缓冲区被生成。第二个构造方法生成一个numBytes大小的缓冲区。缓冲区保存在ByteArrayOutputStream 的受保护的buf 成员里。缓冲区的大小在需要的情况下会自动增加。缓冲区保存的字节数是由ByteArrayOutputStream 的受保护的count域保存的 。

System.out和System.in 可以访问PrintStream类的方法。

FileOutputStream的创建不依赖于文件是否存在。若文件为只读,将发生异常。他的方法write(int b),虽然b为int类型,但仅第八位可以写入到文件。

当输入内容时,一般换行符也会被输入进去。