IO

File

概述

构造方法

代码实现:

public class FileDemo001  {

    public static void main(String[] args) {
File f1 = new File("D:\\file\\file.txt");
System.out.println(f1); File f2 = new File("D:\\file","file.txt");
System.out.println(f2); File f3 = new File("D:\\file");
File f4 = new File(f3,"file.txt");
System.out.println(f4); }
}

结果:

D:\file\file.txt
D:\file\file.txt
D:\file\file.txt

File类创建功能

代码实现:

public class FileDemo002 {
public static void main(String[] args) throws IOException {
File f1 = new File("D:\\file\\java.txt");
System.out.println(f1.createNewFile()); File f2 = new File("D:\\file\\javac");
System.out.println(f2.mkdir()); File f3 = new File("D:\\file\\javase\\io");
System.out.println(f3.mkdirs()); File f4 = new File("D:\\file\\javac.txt");
//要根据调用的方法来判断创建的是什么类型文件
//System.out.println(f4.mkdir());//java.txt文件夹
System.out.println(f4.createNewFile());//java.txt
}
}

结果:

true
true
true
true

File类判断与获取功能

代码实现:

public class FileDemo003 {
public static void main(String[] args) {
File f1 = new File("D:\\file\\java.txt"); System.out.println(f1.isDirectory());
System.out.println(f1.exists());
System.out.println(f1.isFile()); System.out.println(f1.getAbsolutePath());
System.out.println(f1.getName());
System.out.println(f1.getPath());
System.out.println("========分隔符======"); File f2 = new File("D:\\file");
String[] list = f2.list();
for (String s : list) {
System.out.println(s);
} System.out.println("========分隔符======"); File[] files = f2.listFiles();
for (File f : files) {
System.out.println(f); }
}
}

结果:

false
true
true
D:\file\java.txt
java.txt
D:\file\java.txt
========分隔符======
file.txt
java.txt
javac
javac.txt
javase
========分隔符======
D:\file\file.txt
D:\file\java.txt
D:\file\javac
D:\file\javac.txt
D:\file\javase

IO流

概述

字节流写数据

使用字节输出流写数据的步骤

代码实现:

public class FileOutputStreamDemo001 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("基础语法\\fos.txt"); fos.write(97); //关闭资源
fos.close();
}
}

这里涉及到了资源关闭问题,附上链接

https://www.jianshu.com/p/00806fa2cd40

字节流写数据的几种方法·

代码实现:

public class FileOutputStreamDemo002 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream(new File("基础语法\\fos.txt")); //第一种
fos.write(55);
fos.write(56);
fos.write(57);
fos.write(58); //第二种
byte[] bys = {55,56,57,58};
fos.write(bys); //第三种
byte[] b = "abcde".getBytes();
fos.write(b,0,5);
}
}

拓展两个小问题

字节流读数据

一次读一个字节

代码实现:

public class FileIntputStreamDemo001 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("基础语法\\fos.txt");;
int by;
while((by=fis.read())!=-1){
System.out.print((char)by);
}
fis.close();
}
}

结果:

abcde
Process finished with exit code 0

案例复制文本文件

代码实现:

一次读一个字节数组数据

代码实现:

public class FileIntputStreamDemo002 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("基础语法\\fos.txt"); byte[] bys = new byte[1024];
int len = 0;
while((len = fis.read(bys))!=-1){
System.out.println(new String(bys,0,len));
} fis.close();
} }

结果:

abcde
efghf

案例:复制图片

字节缓冲流

案例:复制视频

代码实现:

https://www.bilibili.com/video/BV1Ei4y137HJ?p=288

字符流

为什么出现字符流

字符流写数据的几种方式

public class OutputStreamWriterDemo001 {
public static void main(String[] args) throws IOException {
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("基础语法\\osw.txt")); osw.write(97);
osw.flush();//刷新 char[] ch = {'a','b','c','d','e'};
osw.write(ch); osw.write(ch,0,4); osw.write("abcde"); osw.write("abcde",0,"abcde".length()); osw.close(); }
}

字符流读数据

代码实现:

public class OutputStreamWriterDemo002 {
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(new FileInputStream("基础语法\\isr.txt")); int ch;
while ((ch = isr.read())!= -1){
System.out.print((char)ch);
} byte[] bys = new byte[1024];
int len;
while ((len = isr.read())!= -1){
System.out.print(new String(bys,0,len));
}
}
}

案例:复制java文件

代码改进:

字符缓冲流

代码实现:

**案例:复制java文件***

特有功能

案例:复制java文件

最新文章

  1. Android高薪之路-Android程序员面试宝典
  2. 关于getClass().getClassLoader()
  3. 把一个窗体嵌入到WinForm中进行显示,以CMD窗口为例
  4. html5 app开发重大消息-腾讯在技术端推进Html5生态发展
  5. python学习笔记之初识Python
  6. Codeforces Round #332 (Div. 2) A. Patrick and Shopping 水题
  7. 基于粒子群算法求解求解TSP问题(JAVA)
  8. C# for循环 迭代法 穷举法应用
  9. Python之matplotlib学习(四)
  10. [Swift]LeetCode1004. 最大连续1的个数 III | Max Consecutive Ones III
  11. 虚拟机中ubuntu不能联网问题的解决——NAT方式
  12. swiper插件遇上tab切换
  13. 读《31天学会CRM项目开发》记录1 - 认识软件开发
  14. [archlinux][daily] 自建DNS服务器 / 建立本地DNS cache / 使用dnsmasq加速上网
  15. All the Apache Streaming Projects: An Exploratory Guide
  16. 【Maven】安装及配置(Win)
  17. CIC仿真
  18. Mail.Ru Cup 2018 Round 2 Solution
  19. 二.jQuery源码解析之构建jQuery之构建函数jQuery的7种用法
  20. 学生信息管理系统(C语言版本)

热门文章

  1. 【java】学习路径23-拆箱与装箱
  2. flutter系列之:移动端的手势基础GestureDetector
  3. day33-线程基础03
  4. 果汁 DI 介绍
  5. HashMap不安全后果及ConcurrentHashMap线程安全原理
  6. 后端程序员实现一个IP归属地的小程序
  7. 天翼云上新增IP备案具体操作步骤
  8. MongoDB $type 操作符
  9. Opengl ES之VBO和VAO
  10. 中国数字化是怎么转型成新范式TOP 50的?