IO操作

1、File类

  代表操作系统的文件对象;

  1.1 构造器

#根据一个路径获得File对象
File (String pathname);

#根据一个目录和子文件/目录获得实例
File(String parent,String child );

#根据一个父File实例和子路径获得实例
File(File parent ,String child );

  1.2 常用方法

#分隔符属性
static final String separator
#创建功能
Boolean mkdirs( );创建文件夹,如果父文件夹不存在就一起创建
boolean createNewFile( );创建文件

#删除功能
Boolean delete( )

#重命名或剪切
Boolean renameTo(File dest);

#判断功能
Boolean isDirectory( );
boolean isFile( );
boolean exists( );
boolean canRead( );
boolean canWrite( );
boolean isHidden( );

#基本获取功能
String getAbsolutePath( );
String getPath( );//获取相对路径
String getName( );
long length( );
long lastModified( );

#高级获取功能
String[ ] list( );//获取指定路径下的名称数组
File[ ] listFiles( );

  1.3 注意事项

    如果你创建文件或者文件夹忘了写盘符路径,默认是项目根目录;

    Java中的删除不走回收站;

    删除文件夹,文件夹不能有内容;

2、IO流

  输入输出均是相对于内存的操作;

  2.1 字节流:万能,不懂就用它

    输入流:InputStream;

      实现子类:FileInputStream

    输出流:OutputStream;

      实现子类:FileOutputStream

  2.2 字符流:为了方便操作文本内容

    输入流:Reader;

      实现子类:InputStreamReader( )

    输出流:Writer;

      实现子类:OuputStreamWriter(OutputStream out )

  2.3 序列化流:可以把对象写入文本文件或者在网络中传输

    ObjectOutputStream;只有输出流,输入就用字节流或者字符流;

    如何实现序列化:

      让被序列化的对象所属类实现序列化接口(Serializable);

    如何不被序列化:

      transient(标记不被序列化);

    注意问题:

      把数据写到文件后,再去修改类会产生一个问题;

      如何解决呢?

        在类文件中,给出一个固定的序列化id值;而且,这样也可以解决黄色警告先问题;

  2.4 Properties

    属性集合类,是一个可以和IO流相结合的类;

    可保持再流中或从流中加载。属性列表中每个键及其对应值都是一个字符串;

#把文件中的数据读取到集合中
load();

#把集合中的数据存储到文件中
store();

  2.5 其它流

    随机访问流:RandomAccessFile类不属于流,是Object的子类。但它融合了InputStream和OutputStream的功能。支持对文件的随机访问读取和写入;

    合并流:SequenceInputStream 表示其他输入流的串流;

    内存操作流:用于处理临时存储信息的,程序结束,数据就从内存中消失;ByteArrayXXXXX,CharArrayXXXX

3、NIO流

  新IO,JDK1.4出现,提高了IO流操作效率。

  Interface Path:路径;

  Class Paths:静态方法返回一个 Path通过转换路径字符串或 URI;

  java.nio.file.Files:提供了静态方法供我们使用

long copy () //返回内容大小
string probeContentType(); //获取文件类型
Path createDirectories(); //创建所有目录
Path createDirectorie() ;//创建一个目录,父目录不存在就报错
boolean deleteIfExists ();
boolean exists ();
Path createFile();
原文地址:https://www.cnblogs.com/xp2h/p/12519812.html