Java文件操作与输入输出流
文件操作
package ch15;
import java.io.*;
/**
* Created by Jiqing on 2016/12/28.
*/
public class FileTest {
public static void main(String[] args) throws IOException{
// 以当前路径创建一个File对象
File file = new File(".");
System.out.println(file.getName());
// 获取相对路径
System.out.println(file.getParent());
// 获取绝对路径
System.out.println(file.getAbsoluteFile()); //C:\Users\e550\IdeaProjects\crazyJava\.
// 获取上级路径
System.out.println(file.getAbsoluteFile().getParent()); //C:\Users\e550\IdeaProjects\crazyJava
// 在当前路径下创建一个临时文件
File tmpFile = File.createTempFile("temp",".txt",file);
// 指定当JVM退出时删除文件
tmpFile.deleteOnExit();
// 使用list()方法列出当前路径下所有文件和路径
String[] fileList = file.list();
System.out.println("====当前路径下所有文件和路径如下====");
for (String fileName :fileList) {
System.out.println(fileName);
}
// listRoots() 静态方法列出所有磁盘根路径
File[] roots = File.listRoots();
for(File root:roots) {
System.out.println(root);
}
}
}
执行结果:
.
null
C:\Users\e550\IdeaProjects\crazyJava.
C:\Users\e550\IdeaProjects\crazyJava
====当前路径下所有文件和路径如下====
.git
.idea
crazyJava.iml
image
out
src
temp108678927822844352.txt
C:\
D:\
E:\
F:\
方法论:尝试自己改造一下,能够加深对内容的理解。
Java可以读取并操作文件,还是蛮厉害的。
Java中的IO流
在Java中把不同的输入输出源(键盘、文件、网路连接)抽象表述为“流”。
1.输入流、输出流
2.字节流、字符流
字节流通过InputStream和OutputStream来操作,数据单元是8位的字节
字符流通过Reader和Writer来操作,数据单元是16位的字符
3.节点流、处理流
处理流可以包装节点流进行数据传输,通过处理流,Java程序无需理会输入输出节点是磁盘、网络还是其他输入输出设备,程序只要将节点包装成处理流,就可以使用相同的输入、输出代码来读不通的输入输出设备的数据。
package ch15;
import java.io.*;
/**
* Created by Jiqing on 2016/12/28.
*/
public class FileInputStreamTest {
public static void main(String[] args) throws IOException {
File file = new File(".");
// 创建字节输入流
FileInputStream fis = new FileInputStream(file.getAbsoluteFile().getParent()+"/src/ch15/FileInputStreamTest.java");
// 创建一个长度为1024的竹筒
byte[] bbuf = new byte[1024];
// 保存实际读取的字节数
int hasRead = 0;
// 使用循环来重复“取水”
while ((hasRead = fis.read(bbuf)) > 0) {
// 取出竹筒中的水滴
System.out.print(new String(bbuf,0,hasRead));
}
// 关闭文件输入流
fis.close();
}
}

package ch15;
import java.io.*;
/**
* Created by Jiqing on 2016/12/28.
*/
public class FileReaderTest {
public static void main(String[] args) throws IOException {
File file = new File(".");
try(
// 创建字符输入流,输入到内存
FileReader fr = new FileReader(file.getAbsoluteFile().getParent()+"/src/ch15/FileReaderTest.java"))
{
// 创建一个长度为32的竹筒
char[] cbuf = new char[32];
// 用于保存实际读取的字符数
int hasRead = 0;
// 使用循环来重复取水
while ((hasRead = fr.read(cbuf)) > 0) {
System.out.print(new String(cbuf,0,hasRead));
}
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
竹筒的长度只要大于单位长度即可,32表示一次装入的字符数
package ch15;
import java.io.*;
/**
* Created by Jiqing on 2016/12/28.
*/
public class FileInputStreamTest {
public static void main(String[] args) throws IOException {
File file = new File(".");
// 创建字节输入流
FileInputStream fis = new FileInputStream(file.getAbsoluteFile().getParent()+"/src/ch15/FileInputStreamTest.java");
FileOutputStream fos = new FileOutputStream("newFile.txt");
// 创建一个长度为1024的竹筒
byte[] bbuf = new byte[128];
// 保存实际读取的字节数
int hasRead = 0;
// 使用循环来重复“取水”
while ((hasRead = fis.read(bbuf)) > 0) {
// 取出竹筒中的水滴
// System.out.println(hasRead);
// System.out.print(new String(bbuf,0,hasRead));
fos.write(bbuf,0,hasRead);
}
// 关闭文件输入流
fis.close();
}
}

package ch15;
import java.io.*;
/**
* Created by Jiqing on 2016/12/28.
*/
public class FileReaderTest {
public static void main(String[] args) throws IOException {
File file = new File(".");
try(
// 创建字符输入流,输入到内存
FileReader fr = new FileReader(file.getAbsoluteFile().getParent()+"/src/ch15/FileReaderTest.java");
FileWriter fw = new FileWriter("newWriterFile.txt")
)
{
// 创建一个长度为32的竹筒
char[] cbuf = new char[32];
// 用于保存实际读取的字符数
int hasRead = 0;
// 使用循环来重复取水
while ((hasRead = fr.read(cbuf)) > 0) {
// System.out.println(hasRead);
// System.out.print(new String(cbuf,0,hasRead));
fw.write(cbuf,0,hasRead);
}
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
流就是水滴,有意思。输入流,从文件输入到内存。输出流,从内存输出到硬盘。输入,表示读取数据。输出,表示写入数据。
Java文件操作与输入输出流的更多相关文章
- Java文件操作源码大全
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
- 14、Java文件操作stream、File、IO
1.文件操作涉及到的基本概念 File File类 是文件操作的主要对象中文意义就是 文件 顾名思意 万物皆文件,在计算上看到的所有东西都是文件保存,不管是你的图片.视频.数据库数据等等都是按照基本的 ...
- Java 文件操作大全
Java 文件操作大全 //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if (!myFolderPat ...
- JAVA文件操作类和文件夹的操作代码示例
JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...
- java文件操作(普通文件以及配置文件的读写操作)
转自:java文件操作(普通文件以及配置文件的读写操作) 读取普通文件 : /** * xiangqiao123欢迎你 如果对代码有疑问可以加qq群咨询:151648295 * * 读取MyFile文 ...
- Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比
Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比: Unix/Linux (Bash) Windows(MS-DOS) Java 进入目录 cd cd - 创建 ...
- Java第九次作业--输入输出流和文件操作
Deadline: 2017-5-25 23:00 一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握使用File类访问文件 掌握IO操作的基本原理 掌握字节流和字符流读写文件的操作 二.作业 ...
- Java精选笔记_IO流(字节流、InputStream、OutputStream、字节文件、缓冲区输入输出流)
字节流 操作图片数据就要用到字节流. 字符流使用的是字符数组char[],字节流使用的是字节数组byte[]. 字节流读写文件 针对文件的读写,JDK专门提供了两个类,分别是FileInputStre ...
- java 文件操作 读取字节级数据(读取)
package com.swust; import java.io.*; /* * 功能:按照双精度浮点型.整型.布尔型.字符型.和字符串型的顺序从名为sample.dat文件读取数据 * 分析:用F ...
随机推荐
- P1073 最优贸易
#include <bits/stdc++.h> using namespace std; const int maxn = 100005; int head1[maxn], head2[ ...
- Ruby零星笔记
chomp:去掉字符串末尾的\n或\r chop:去掉字符串末尾的最后一个字符,不管是\n\r还是普通字符 to_s:转换成字符串 to_i:转换成数值 object.nil?:判断是否为空,空返回: ...
- C# mvc中为Controller或Action添加定制特性实现登录验证
在本文开始前,先简单讲两个知识点: 1.每个action执行前都会先执行OnActionExecuting方法: 2.FCL提供了多种方式来检测特性的存在,比如IsDefined.GetCustomA ...
- zjuoj 3608 Signal Detection
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3608 Signal Detection Time Limit: 2 Sec ...
- 笔记本自带 WiFi 功能
在寝室,动网速基本崩溃.平时打电话什么的都得到阳台,有时候还听不清声音.对于学校的环境,我不说什么了. 笔记本可以上网,那就要满足手机等移动电子设备上网的上网需求. WiFi 热点就显得尤为重要了. ...
- 0511 backlog
SCRUM 这次的作业就是确定SCRUM的计划,确定sprint backlog的一个冲刺周期,而这个周期是两个星期.争取在两周内发布1.0版本. 本次作业以网站构建为主: ID NAME ...
- 从出租车司机到大BOSS的转型之路
来深圳之前,曾有人这样告诉我:在深圳千万不能以貌取人,打扮不起眼,也许他转身开的座驾就是宝马.奔驰;不管一个人多么邋遢俗气,也别瞧不起人家,也许他的手提袋里就是成捆的人民币现金;不管一个人打扮的多么土 ...
- FORM 提示保存
修改的FORM在编译到测试环境后打开并没有修改什么数据,却提示是否保存,检查->system.form_satus 为"changed": 个人实际解决情况为:在数据块级的触 ...
- Objective-C语言Foundation框架
Mac OS X开发会使用Cocoa框架,它是一种支持应用程序提供丰富用户体验的框架,它实际上由:Foundation和Application Kit(AppKit)框架组成.iOS开发,会使用Coc ...
- WPF:设置弹出子菜单的是否可用状态及效果
需求: 设置弹出子菜单(二级)项仅首项可用,其他项均不可用:不可用是呈灰色效果. 注: 菜单项都是依据层级数据模板.具体格式如下: StackBlock{TextBlock{Image}.TextBl ...