java速查表_java速查笔记

Mike的分享空间

java速查笔记

date: 2016.08.04; modification:2016.08.05

目录:

1 系统属性

Java提供的java System.getProperties()方法是获取运行环境的系统参数的

属性

解释

java.version

Java 运行时环境版本

java.vendor

Java 运行时环境供应商

java.vendor.url

Java 供应商的 URL

java.home

Java 安装目录

java.vm.specification.version

Java 虚拟机规范版本

java.vm.specification.vendor

Java 虚拟机规范供应商

java.vm.specification.name

Java 虚拟机规范名称

java.vm.version

Java 虚拟机实现版本

java.vm.vendor

Java 虚拟机实现供应商

java.vm.name

Java 虚拟机实现名称

java.specification.version

Java 运行时环境规范版本

java.specification.vendor

Java 运行时环境规范供应商

java.specification.name

Java 运行时环境规范名称

java.class.version

Java 类格式版本号

java.class.path

当前类所在的路径

java.library.path

加载库时搜索的路径列表

java.io.tmpdir

默认的临时文件路径

java.compiler

要使用的 JIT 编译器的名称

java.ext.dirs

一个或多个扩展目录的路径

os.name

操作系统的名称

os.arch

操作系统的架构

os.version

操作系统的版本

file.separator

文件分隔符(在 UNIX 系统中是"/")

path.separator

路径分隔符(在 UNIX 系统中是":")

line.separator

行分隔符(在 UNIX 系统中是"/n")

user.name

用户的账户名称

user.home

用户的主目录

user.dir

用户的当前工作目录

打印上述属性的代码:

System.out.println("Java 运行时环境版本 : " + System.getProperty("java.version"));

System.out.println("Java 运行时环境供应商 : " + System.getProperty("java.vendor"));

System.out.println("Java 供应商的 URL : " + System.getProperty("java.vendor.url"));

System.out.println("Java 的安装路径 : " + System.getProperty("java.home"));

System.out.println("Java 虚拟机规范版本 : " + System.getProperty("java.vm.specification.version"));

System.out.println("Java 虚拟机规范供应商 : " + System.getProperty("java.vm.specification.vendor"));

System.out.println("Java 虚拟机规范名称 : " + System.getProperty("java.vm.specification.name"));

System.out.println("Java 虚拟机实现版本 : " + System.getProperty("java.vm.version"));

System.out.println("Java 虚拟机实现供应商 : " + System.getProperty("java.vm.vendor"));

System.out.println("Java 虚拟机实现名称 : " + System.getProperty("java.vm.name"));

System.out.println("Java 运行时环境规范版本 : " + System.getProperty("java.specification.version"));

System.out.println("Java 运行时环境规范供应商 : " + System.getProperty("java.specification.vendor"));

System.out.println("Java 运行时环境规范名称 : " + System.getProperty("java.specification.name"));

System.out.println("当前类的格式版本号 : " + System.getProperty("java.class.version"));

System.out.println("当前类所在的路径 : " + System.getProperty("java.class.path"));

System.out.println("加载库时搜索的路径列表 : " + System.getProperty("java.library.path"));

System.out.println("默认的临时文件路径 : " + System.getProperty("java.io.tmpdir"));

System.out.println("要使用的 JIT 编译器的名称 : " + System.getProperty("java.compiler"));

System.out.println("一个或多个扩展目录的路径 : " + System.getProperty("java.ext.dirs"));

System.out.println("操作系统的名称 : " + System.getProperty("os.name"));

System.out.println("操作系统的架构 : " + System.getProperty("os.arch"));

System.out.println("操作系统的版本 : " + System.getProperty("os.version"));

System.out.println("当前操作系统的文件分隔符 : " + System.getProperty("file.separator"));

System.out.println("当前操作系统的路径分隔符 : " + System.getProperty("path.separator"));

System.out.println("当前操作系统的行分隔符 : " + System.getProperty("line.separator"));

System.out.println("用户的当前账户名称 : " + System.getProperty("user.name"));

System.out.println("用户的当前工作目录 : " + System.getProperty("user.dir"));

System.out.println("用户的主目录 : " + System.getProperty("user.home"));

2 文件与文件夹操作

2.1 遍历文件夹例程

为了突出主要内容, 未增加错误处理代码.

// path: 要访问的路径

// lastNode: 层次数组, 每递归一次, 在该数组后面增加一个元素,

指明被访问的节点是否是本级目录的最后一个节点,

用于控制输出内容的前缀及样式. 最外层调用传入{true}.

public static void tree(String path, boolean lastNode[]) {

File f = new File(path);

String prefix = "";

int level = lastNode.length - 1;

// Prefix

for (int i = 1; i < level; i++) {

if (lastNode[i]) {

prefix += " ";

} else {

prefix += "| ";

}

}

if (level > 0) {

if (lastNode[level]) {

prefix += "`-- ";

} else {

prefix += "|-- ";

}

}

if (f.exists()) {

String name;

if (level == 0) {

name = f.getAbsolutePath(); // 顶级打印绝对路径

} else {

name = f.getName(); // 子级只打印名称

}

if (f.isDirectory()) { // 判断是否为文件夹

System.out.println(prefix + "\033[01;34m" + name + "\033[0m"); // 打印文件夹名

String flist[] = f.list(); // 获取所有子文件列表

for (int i = 0; i < flist.length; i++) {

String sub = flist[i];

boolean lastSubNode;

if (i == (flist.length - 1)) {

lastSubNode = true;

} else {

lastSubNode = false;

}

boolean newLastNode[];

int len = 0;

newLastNode = new boolean[lastNode.length + 1];

System.arraycopy(lastNode, 0, newLastNode, 0, lastNode.length);

newLastNode[lastNode.length] = lastSubNode;

tree(path + "/" + sub, newLastNode);

}

} else {

System.out.println(prefix + name); // 打印文件名

}

} else {

System.out.println(prefix + path + " does not exist.");

}

}

tree("/tmp/xxx", new boolean[]{true});

3 IO流

3.1 分类

按流向分:

输入流

输出流

按功能分:

结点流(node stream): 直接从指定的位置(如磁盘文件或内存区域)读或写.

过滤器(filters): 除结点流之外的流都是过滤器. 也有的叫处理流或包装流. 这种流在基本的节点流外进行一层包装, 所以一般构造它们时, 需要传入基本的节点流.

按处理数据分

字节流: InputStream是所有字节输入流的祖先, 而OutputStream是所有字节输出流的祖先.

字符流: Reader是所有读取字符串输入流的祖先, 而writer是所有输出字符串的祖先.

InputStream, OutputStream, Reader, Writer都是抽象类. 所以不能直接new.

3.2 IO常用类

方向

数据

功能

备注

InputStream(抽象)

In

字节

//

OutputStream(抽象)

Out

字节

//

FileInputStream

In

字节

节点流

FileOutputStream

Out

字节

节点流

ByteArrayInputStream

In

字节

节点流

把数组像文件一样流化

ByteArrayOutputStream

Out

字节

节点流

把数组像文件一样流化

-------------------------------

------

--------------

--------

------------------------------------

BufferedInputStream

In

字节

包装流

BufferedOutputStream

Out

字节

包装流

DataInputStream

In

----

包装流

可以把基本数据类型与String从流取出

DataOutputStream

Out

----

包装流

可以把基本数据类型与String塞到流中

ObjectInputStream

In

----

包装流

可以把对象从流取出(序列化)

ObjectOutputStream

Out

----

包装流

可以把对象塞到流中(反序列化)(transient)

===============================

======

==============

========

====================================

Reader(抽象)

In

字符

//

Writer(抽象)

Out

字符

//

FileReader

In

字符

节点流

FileWriter

Out

字符

节点流

-------------------------------

------

--------------

--------

------------------------------------

BufferedReader

In

字符

包装流

BufferedReader

Out

字符

包装流

###############################

######

##############

########

####################################

InputStreamReader

In

字节->字符

包装流

解码

OutputStreamWriter

Out

字符->字节

包装流

编码

-------------------------------

------

--------------

--------

------------------------------------

PrintStream(System.out/err)

Out

字节

包装流

打印 (可用System.setOut重定向, FileDescriptor.out定向会来)

InputStream(System.in)

Out

字节

包装流

打印(System.out, System.err)

Human knowledge belongs to the world

Contact: wytabc@126.com

声明: 本站如有侵权行为请及时通知至以上邮箱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值