File I|O(八)
1.I/O:input/output
1.1.java.io.File
表示:文件或者文件夹(目录)
File f=new File("文件路径")
注意:相对路径:非web项目的相对路径都是以项目名为起点(src/a.txt)(建议使用)
绝对路径:d:/bin/a.txt(以盘符开头的)(不可取)
2.文件常见方法
boolean flag=f.exists(); //文件是否存在
flag=f.isFile(); //是否是文件
flag=f.isDirectory(); //是否是目录
str=f.getPath(); //获得文件的相对路径
str=f.getAbsolutePath(); //获得文件的绝对路径
str=f.getName(); //获得文件名
flag=f.delete(); //删除文件
flag=f.createNewFile(); //创建文件
long=f.length(); //返回文件长度
注意:File不能操作文件内容
3.InputStream/OutputStream
文件:FileInputStream/FileOutputStream
3.1 FileInputStream(输入流)
数据从文件到java代码中。
int read(); //读取一个字节
int read(byte[]); //读取一串字节
long avaliable; //文件长度
3.2 FileInputStream(字节文件输入流)
new FileInputStream(File);
new FileInputStream("文件路径+文件名");
3.3 FileOutputStream(输出流)
数据从java代码中,写到文件或者其他介质中。
void write(字节); //写入一个字节
void write(byte[]); //写入字节数组
3.4 FileOutputStream
new FileOutputStream(File);
new FileOutputStream("文件路径+文件名");
new FileOutputStream("文件路径+文件名",true);
注意:a.boolean:表示是否向文件末尾追加,如果是true,表示追加,false表示不追加(也就是覆盖),默认值为false
b.创建FileOutputStream实例时,如果相应的文件并不存在,则会自动创建一个空的文件。
4.Reader/Writer(字符流)
//能够用文本编辑器打开的文件,不乱码就是字符文件
//能够用文本编辑器打开乱码的,就是字节文件
4.1 FileReader
int b=fr.read(); //读取一个字符
int length=fr.read(char[]); //读取字符数组
4.2 FileWriter
fw.write(char); //写一个字符
fw.write(char[]); //写字符数组
4.3BufferedReader(字符输入缓冲流)
BufferedReader br=new BufferedReader(new FileReader("文件路径"));
String str=br.readLine(); //读取一行字符
4.4BufferedWriter(字符输出缓冲流)
BufferedWriter bw=new BufferedWriter(new FileWriter("文件路径"));
bw.write(字符串);
运行结果:

package Day19; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; public class TestBuffer {
public static void main(String[] args) throws Exception {
buReader();
buWriter(); } private static void buWriter() throws Exception {
BufferedWriter bw=new BufferedWriter(new FileWriter("src/a.txt"));
bw.write("我是中国人");
//刷新缓存
bw.flush();
//默认执行flush(),关闭管道
bw.close();
} private static void buReader() throws Exception {
BufferedReader br=new BufferedReader(new FileReader("src/d.txt"));
//读取一行记录
// String str=br.readLine();
// str=br.readLine();
// System.out.println(str); String str;
while((str=br.readLine())!=null){
System.out.println(str);
}
}
}
代码示例
5.DataInputStream/DataOutputStream
6.小结
6.1读写字符文件
读:BufferedReader br=new BufferedReader(new FileReader("文件路径"));
写:BufferedWriter bw=new BufferedWriter(new FileWriter("文件路径",boolean));
6.2读写字节文件
DataInputStream dis=new DataInputStream(new FileInputStream("文件路径"));
DataOutputStream dos=new DataOutputStream(new FileOutputStream("文件路径"));
6.3读取整个字符文件
String str=null;
while((str=br.readLine())!=-1){
System.out.println(str);
}
6.4读取整个字节文件
int b;
while((b=dis.read())!=-1){
System.out.println(b);
}
package Day20; import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream; public class TestByteFile {
public static void main(String[] args) throws Exception {
DataInputStream dis1=new DataInputStream(new FileInputStream("src/a.jpg"));
int a=dis1.read();
System.out.println(a);
dis1.close(); DataOutputStream dos1=new DataOutputStream(new FileOutputStream("src/b.jpg"));
dos1.write(255);
dos1.close(); //复制a.jpg--->b.jpg
DataInputStream dis2=new DataInputStream(new FileInputStream("src/a.jpg"));
DataOutputStream dos2=new DataOutputStream(new FileOutputStream("src/b.jpg"));
int b;
while((b=dis2.read())!=-1){
dos2.write(b);
}
dis2.close();
dos2.close();
}
}
代码示例
File I|O(八)的更多相关文章
- Web服务器与数据库服务器分离 导入 Excel数据至数据库
一般情况一般项目WEB服务器与数据库均部署在一台服务器,文件上传,数据导入在一台服务器完成.web服务器与数据库服务器分离,文件上传与数据导入将分布在两台服务器或多台服务器之间.本案例为两台服务器,具 ...
- python 在最后一行追加
2.文本文件的写入 import fileinput file = open("D:\\test.txt", encoding="utf-8",mode=&qu ...
- ImageMagick常用指令详解
Imagemagick常用指令 (ImageMagick--蓝天白云) (ImageMagick官网) (其他比较有价值的IM参考) (图片自动旋转的前端实现方案) convert 转换图像格式和大小 ...
- oracle 学习
一.数据库语言部分1. SQL语言:关系数据库的标准语言2. PL/SQL:过程化语言Procedural Language3. SQL*Plus:简单的报表,操作系统接口 4. Oracle 8.0 ...
- w3wp.exe CPU过百问题
w3wp.exe CPU过百问题 最近发布在windows server2012 IIS8.0上的一个WebAPI项目,才几十个人在线,CPU就会出现过百情况,并且CPU一旦过百应用程序池就自动暂 ...
- 在Centos7.2(64位)下搭建Web服务器
一:通过Yum安装mysql 1 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 2 # rpm -i ...
- luffy项目后台drf搭建(1)
一 进入虚拟环境 打开crm,输入命令 workon luffy 虚拟环境使用文档 二 安装基本类库 pip install django pip install PymySQL pip instal ...
- Windbg+Procdump解决w3wp.exe CPU过百问题
最近发布在windows server2012 IIS8.0上的一个WebAPI项目,才几十个人在线,CPU就会出现过百情况,并且CPU一旦过百应用程序池就自动暂停掉,看到这个问题我感觉应该是程序 ...
- 深入理解磁盘文件系统之inode
一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...
- [原]Android打包之Eclipse打多渠道包
Android自动打包流程详细图: 步骤一和步骤二参考:[原]Android打包之Eclipse打包 步骤三:编写build.xml <?xml version="1.0" ...
随机推荐
- HTML 2 (Day49)
一.table标签 http://www.cnblogs.com/shaojiafeng/p/7516741.html 二.form 表单属性 action:表单提交到哪.一般指向服务端一个程序,程序 ...
- beego——控制器函数
基于beego的Controller设计,只需要匿名组合beego.Controller就可以,如下所示: type xxxController struct { beego.Controller } ...
- input和raw_input的区别
input会假设用户输入的是合法的Python表达式raw_input会把所有的输入当作原始数据,然后将其放入字符串中. 在最新的版本之中,input可以直接使用,替代了raw_input. 在2.7 ...
- mysql完整备份与恢复
1.备份单个数据库 mysql数据库自带了一个很好用的备份命令,就是mysqldump,他的基本使用如下: 语法:mysqldump -u 用户名 -p 数据库名 > 备份的文件名 备份一 1. ...
- nfs服务、crond服务
一.nfs服务 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系 ...
- PAT 天梯赛 L1-019. 谁先倒 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-019 AC代码 #include <iostream> #include <cstdio&g ...
- URAL - 1901 Space Elevators
题目: Nowadays spaceships are never launched from the Earth's surface. There is a huge spaceport place ...
- boot空间不足,删除Ubuntu旧内核
0 Problem 今天打开电脑的时候ubuntu提示boot空间不足.查了资料,原来Ubuntu的自动升级并没有删除系统的旧内核,于是boot下旧的内核文件越积越多,最后就满了. 1 Solutio ...
- JavaScript与Java数据类型的区别
今天开始正式认真学习js,虽然在平常j2ee开发中也经常用到JS但并不精通,这次随笔记下js与Java数据类型的不同之处 Number 与java不同,js作为弱类型语言即使在浮点数与整数上也未作明确 ...
- C#中ReferenceEquals和Equals的区别
ReferenceEquals()判断两个字符串是否指向相同的内存地址:(判断引用) Equals,先判断两个字符串有相同的内存位置,是则两个字符串相等:否则逐字符比较两个字符串,判断是否相等(先判断 ...