IO 使用说明介绍_java

在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在,通过exists判断; 在文本文件操作流构造的时候还可指定编码方式;

File f;

f.exists();

f.isDirectory();

f.isFile();

f.deleteOnExit();// 在程序退出的时候将指定文件删除;

f.createNewFile();// 在指定位置创建文件,如果文件已经存在,则返回false;

f.getParent();//此方法返回的是绝对路径中的父目录,如果获取的是相对路径,返回Null,如果相对路径中有上一层目录则返回该目录;

 

File.separator //文件系统分割符,不同系统分割符不同;

FilenameFilter://用于过滤文件名;

FilenameFilter.accept(File dir,String name); //测试指定文件是否包含在某一文件列表中;

name:文件的名称;

public boolean accept(File dir, String name) {     return name.endsWith(".txt");    }

 

//缓冲区的出现是为了提高流的操作效率而出现的;在创建缓冲区之前,必须要有流对象;

//缓冲技术其实是在对象内部封闭了数组,存完了之后一次性写入;

Constructor: 将流传入buffer的构造函数;

Notice:只要用到缓冲区,就得对缓冲区进行刷新;

Buffered... buf;

buf.flush();

buf.close();//关闭缓冲区就是关闭缓冲区中的流对象;

BufferedReader bufr;

bufr.readLine();//返回一行,但不包含换行符;

// 无论读取一行还是多个字符,其实最终都是在硬盘上一个一个的读取,所以最终使用的方法还是read方法一次读一个

/*  

* ByteArrayInputStream:在构造的时候,需要接收数据源,而且数据源为字节数组;  

* ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为内部定义了一个可变长度的字节数组,它就是数据目的地;  

* 两个流对象都操作的是数组,并没有使用系统资源,不需要进行关闭的操作;  

*/

// 关闭流资源之前会刷新一次内部缓冲区中的数据;

// flush();刷新(将缓冲区中的数据存入文件中)后,流继续使用;

// 序列化:静态的成员不能序列化;

// 如果不想让非静态成员被序列化,加修饰符:transient int,,,

System.in:InputStream

System.out:OutputStream

时间: 2024-12-27 07:08:07

IO 使用说明介绍_java的相关文章

Java关于IO流的全面介绍_java

JDK提供的流继承了四大类:InputStream(字节输入流).OutputStream(字节输出流).Reader(字符输入流).Writer(字符输出流). 字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节: 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时.先去查指定的编码表,将查到的字符返回. 2.字节流可以处理所有类型数据,如:图片,MP3,AVI视频文件,而字符流只能处理字符数据. 只要是处理纯文本数据,就要

Java 高并发四:无锁详细介绍_java

在[高并发Java 一] 前言中已经提到了无锁的概念,由于在jdk源码中有大量的无锁应用,所以在这里介绍下无锁. 1 无锁类的原理详解 1.1 CAS CAS算法的过程是这样:它包含3个参数CAS(V,E,N).V表示要更新的变量,E表示预期值,N表示新值.仅当V 值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么 都不做.最后,CAS返回当前V的真实值.CAS操作是抱着乐观的态度进行的,它总是认为自己可以成功完成 操作.当多个线程同时使用CAS操

java Spring 5 新特性函数式Web框架详细介绍_java

java Spring 5 新特性函数式Web框架 举例 我们先从示例应用程序的一些摘录开始.下面是暴露Person对象的响应信息库.很类似于传统的,非响应信息库,只不过它返回Flux<Person>而传统的返回List<Person>,以及返回Mono<Person>的地方返回Person.Mono<Void>用作完成标识:指出何时保存被完成. public interface PersonRepository { Mono<Person> g

MyBatis中关于resultType和resultMap的区别介绍_java

MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的(对应着我们的model对象中的实体),而resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时存在. 在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值.

Java9的一些新特性介绍_java

被接受的特性1. Jigsaw 项目;模块化源码 Jigsaw项目是为了模块化Java代码.将JRE分成可相互协作的组件,这也是Java 9 众多特色种的一个.JEP是迈向Jigsaw四步中的第一步,它不会改变JRE和JDK的真实结构.JEP是为了模块化JDK源代码,让编译系统能够模块编译并在构建时检查模块边界.这个项目原本是随Java 8发布的,但由于推迟,所以将把它加到Java 9. 一旦它完成,它可能允许根据一个项目需求自定义组件从而减少rt.jar的大小.在JDK 7 和JDK 8的rt

java线程阻塞中断与LockSupport使用介绍_java

上周五和周末,工作忙里偷闲,在看java cocurrent中也顺便再温故了一下Thread.interrupt和java 5之后的LockSupport的实现. 在介绍之前,先抛几个问题. Thread.interrupt()方法和InterruptedException异常的关系?是由interrupt触发产生了InterruptedException异常? Thread.interrupt()会中断线程什么状态的工作? RUNNING or BLOCKING? 一般Thread编程需要关注

InnoDB IO子系统介绍

本文我们来简单过一下InnoDB的IO子系统相关模块的代码逻辑.主要包括IO读写线程.预读逻辑.InnoDB读写Page以及社区的一些改进. 前言 InnoDB对page的磁盘操作分为读操作和写操作.   对于读操作,在将数据读入磁盘前,总是为其先预先分配好一个block,然后再去磁盘读取一个新的page,在使用这个page之前,还需要检查是否有change buffer项,并根据change buffer,进行数据变更.   读操作分为两种场景:普通的读page及预读操作,前者为同步读,后者为

JAVA Map架构和API介绍_java

首先,我们看看Map架构.如上图:Map 是映射接口,Map中存储的内容是键值对(key-value).AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API.其它Map的实现类可以通过继承AbstractMap来减少重复编码.SortedMap 是继承于Map的接口.SortedMap中的内容是排序的键值对,排序的方法是通过比较器(Comparator).NavigableMap 是继承于SortedMap的接口.相比于SortedMap,NavigableMap有一系

Java集合类中文介绍_java

Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工具类(Iterator迭代器.Enumeration枚举类.Arrays和Collections)..Java集合工具包框架图(如下):大致说明:看上面的框架图,先抓住它的主干,即Collection和Map.1 Collection是一个接口,是高度抽象出来的集合,它包含了集合的基