java IO 学习(三)
java IO 学习(一)给了java io 进行分类,这一章学习这些类的常用方法
一、File
1、创建一个新的File的实例:
/**
* 创建一个新的File实例
*/
File f = new File("D:/file/3.jpg");// unix系统
File f2 = new File("D:\\file\\3.jpg");// windows系统
File f3 = new File("D:\\file", "3.jpg");
File f4 = new File(f3.toURI());
File f5 = new File("a.jpg");
2、该File实例的常用方法
if (f2.canExecute()) {
System.out.println("该文件可以被执行");
}
if (f2.canRead()) {
System.out.println("该文件可以被读取");
}
if (f2.canWrite()) {
System.out.println("该文件可以被写入(修改)");
}
System.out.println("比较两个File实例(f2,f3)的字典:" + f2.compareTo(f3));
if (f.createNewFile()) {
System.out.println("当且仅当具由该实例表示的文件尚不存在时,创建一个新的空文件,并返回true");
}
if (!f.exists()) {
System.out.println("该实例表示的文件不存在");
}
if (!f.isFile()) {
System.out.println("该实例不是标准文件");
}
if (!f.isDirectory()) {
System.out.println("该实例不是目录");// 目录就是文件夹
}
if (!f.isHidden()) {
System.out.println("该实例不是隐藏文件");
}
// 获取文件名或目录名
String name = f.getName();
// 获取文件绝对路径
String absolutePath = f.getAbsolutePath();
// 获取文件父目录
String parent = f.getParent();
// 获取文件路径
String path = f.getPath();
long lastUpdate = f.lastModified();
long length = f.length();
// 创建此抽象路径名指定的目录
f.mkdir();
// 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
f.mkdirs();
// 重新命名此抽象路径名表示的文件,就是对该文件的路径进行重命名
// 如果父路径相同,就是对该文件的重命名,如果父路径不一样,就是移动该文件的位置,目标文件已存在时移动失败
f.renameTo(new File("D:/file/2/1.jpg"));
// 删除该文件
f.delete();
二、InputStream
1、一般创建一个InputStream实例由它的子类 FileInputStream 来完成。
/**
* 读取文件的原始字节流
*/
FileInputStream fip = new FileInputStream("D:\\file\\3.jpg");// 通过路径
FileInputStream fip2 = new FileInputStream(f2);// 通过File实例
2、它拥有的常用方法以及它子类的常用方法
/**
* 读取文件的原始字节流
*/
FileInputStream fip = new FileInputStream("D:\\file\\3.jpg");// 通过路径
FileInputStream fip2 = new FileInputStream(f2);// 通过File实例
// 获取该流可以读取(或跳过)的字节数的估计值(int)
System.out.println(fip.available());
// 获取从输入流读取数据的下一个字节
System.out.println(fip.read());
// 从输入流读取一些(new byte[100].length=100)字节数,并将它们存储到缓冲区 new
// byte[100],返回读取的字节数
System.out.println(fip.read(new byte[100]));
// 从输入流的0位置开始读取最多 100字节的数据到一个new byte[100],返回读取的字节数
System.out.println(fip.read(new byte[100], 0, 100));
// 跳过并丢弃100个字节数,返回实际跳过的字节数
fip.skip(100);
if (fip.markSupported()) {
System.out.println("这个输入流支持 mark和 reset方法");
// 标记此输入流中的当前位置
fip.mark(12);
// 将此流重新定位到上次在此输入流上调用 mark方法时的位置
fip.reset();
}
// 关闭流
fip.close();
/**
* 子类DataInputStream多了.readLong();等一些方法,别的子类与父类基本相同,多出来的方法我们新人一般用不到
*/
三、OutputStream
// 声明和InputStream基本一样,多了一个:true 表示字节将被写入到文件的末尾,而不是开头(append)
FileOutputStream os = new FileOutputStream("D:\\file\\3.jpg", true);
// 将指定的字节写入此输出流
os.write(0);
// 将 new byte[100].length字节从new byte[100]写入此输出流
os.write(new byte[100]);
// 从new byte[100]写入 50个字节,从偏移 0开始输出到此输出流
os.write(new byte[100], 0, 50);
// 刷新此输出流并强制任何缓冲的输出字节被写出
os.flush();
// 关闭流
os.close();
// 创建一个新的字节数组输出流,具有100大小的缓冲区容量,不填不指定大小
ByteArrayOutputStream baos = new ByteArrayOutputStream(100);
// 创建一个新分配的字节数组
byte[] b = baos.toByteArray();
// 将此字节数组输出流的 count字段重置为零,以便丢弃输出流中当前累积的所有输出
baos.reset();
// 使用utf-8字符集将缓冲区内容转换为字符串解码字节, 不填则用平台默认
baos.toString("utf-8");
/**
* 子类DataOutputStream多了.writeLong();.size()等一些方法,别的子类与父类基本相同,多出来的方法我们新人一般用不到
*/
java IO 学习(三)的更多相关文章
- Java IO学习--(三)通道
Java IO中的管道为运行在同一个JVM中的两个线程提供了通信的能力.所以管道也可以作为数据源以及目标媒介. 你不能利用管道与不同的JVM中的线程通信(不同的进程).在概念上,Java的管道不同于U ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- Java IO学习笔记三:MMAP与RandomAccessFile
作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和Fil ...
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- Java IO(三)FileDescriptor
Java IO(三)FileDescriptor 一.介绍 FileDescriptor 是文件描述符,用来表示开放文件.开放套接字等.当 FileDescriptor 表示文件时,我们可以通俗的将 ...
- Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer
作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
- Java IO学习笔记五:BIO到NIO
作者:Grey 原文地址: Java IO学习笔记五:BIO到NIO 准备环境 准备一个CentOS7的Linux实例: 实例的IP: 192.168.205.138 我们这次实验的目的就是直观感受一 ...
随机推荐
- python模块之xlrd(excl调用模块)
一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 二.使用介绍 1.导入模块 import x ...
- ThreadLocal类,实例测试,FutureTask类,实例测试。
1:测试ThreadLocal类, 为每个线程域保存局部变量.例如下面的例子. ThreadLocal为每个线程保存了一个Test对象, 那么当执行线程时,每个线程中的test具有唯一性.某一个线 ...
- [py]多态的理解
多态 不同的数据类型,执行相同的方法,产生的状态不同 不同对象调用相同的方法(运行时候的绑定状态) #!/usr/bin/env python # coding=utf-8 class H2O: de ...
- kafka详解
一.基本概念 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计. 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语:Kafk ...
- 获取用户真实Ip地址
REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP.如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP.HTTP_CLIENT_IP 是代理服务器发送的HTTP头.如 ...
- 026-B树(一)
1.内节点:非根非叶子节点,即非根的分支节点. 2.名称:B-树=B树=平衡多路查找树. 3.定义:m阶B树. (0).根节点孩子数rootChildNum范围:若没有孩子节点则孩子数为0,若有孩子则 ...
- 牛客国庆集训派对Day3 Solution
A Knight 留坑. B Tree 思路:两次树形DP,但是要考虑0没有逆元 可以用前缀后缀做 #include <bits/stdc++.h> using namespa ...
- Codeforces Round #275 (Div. 2) 题解
A 题: 说的是在(LR) 之间找出ab互质 bc 互质 ac 不互质的 3个数 数据量小直接暴力 #include <iostream> #include <cstdio> ...
- uva1452
这题说的是给了一个序列1到n然后你从1 位置开始数k个删除,直到最后每个数都被删除了.我们考虑1个数在被删除前后的位置,比如现在在i位置那么 回到删除当前的最后一个是 (i+k)L 了为删除前 的 个 ...
- Cup fungus in Corvobado Nation Park,Costa Rica