输入输出和反射(上)

来源:互联网 发布:内容运营优化 编辑:程序博客网 时间:2024/06/07 04:32

1.创建一个新文件

eg:  String path="L:"+File.separator+"io.txt";

File f=new File(path);

//判断文件是否存在,如果文件不存在就创建文件

if(!f.exists()){

f.createNewFile();

}

2.创建一个目录

eg: String path="L:"+File.separator+"io";

File f=new File(path);

//判断文件是否存在,如果文件不存在就创建文件

if(!f.exists()){

f.mkdir();

}

3.删除一个文件或目录

f.delete();

注意:有些同学可能认为,我直接在windows下使用\进行分割不行吗?当然是可以的。但是在linux下 就不是\了。所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧 ,其实也多写不了几行。

建议常用常量File.separatorFile.pathSeparator

4.判断一个指定的路径是否为目录

f.isDirectory();

5.流的分类





6.常用的流类型结构图


7.使用FileOutputStream向文件中写入字符串


使用//如果不想覆盖原文件里面的内容,就设置为true

OutputStream out =newFileOutputStream(f,true);

8.使用BufferedOutputStream向文件中写入字符串

9.使用FileInputStream读取文件内容


注意:你会发现你需要定义空间的大小,这样反而会很麻烦。可见字节流不适用于读取文本文件。

10.文件复制


使用FileInputStream读取文件内容

11.使用字符流向文件中写入数据


12.使用字符流读取文件



13.使用InputStreamReader读取文件



14.关于字节流和字符流的区别

实际上字节流在操作的时候本身是不会用到缓冲区的,是文件本身的直接操作的,但是字符流在操作的 时候下后是会用到缓冲区的,是通过缓冲区来操作文件的。读者可以试着将上面的字节流和字符流的程序的最后一行关闭文件的代码注释掉,然后运行程序看看。你就会发现使用字节流的话,文件中已经存在内容,但是使用字符流的时候,文件中还是没有内容的,这个时候就要刷新缓冲区。

字节流和字符流的区别
(1)字节流操作的过程中,不会使用缓冲区,直接操作文件本身,字符流操作的过程要使用缓冲区
(2)对于字符流来说,如果使用完不关闭字符输出流,内容将写不到文件中,如果要写如可以使用flush()进行刷新。
(3)如果操作的是音频、视频、图片、歌曲,就用字节流
(4)如果操作的是文本使用字符流 



FileInputStream读取文件内容

使用FileInputStream读取文件内容

使用FileInputStream读取文件内容

使用FileInputStream读取文件内容

使用FileInputStream读取文件内容

使用FileInputStream读取文件内容

使用FileInputStream读取文件内容