12.19 file与io流

File

1. 新建文件或者文件夹

新建文件
File F = new File(pathname:"路径+文件名");
Boolean flag = F.creatNewFile();//如果文件不存在就创建,存在就创建失败。
新建一级文件夹
File F = new File(pathname:"一级路径");//例如D:\\F;
Boolean flag = F.mkdir();
System.out.println(flag?"文件夹创建成功":"文件夹创建失败");
新建多级文件夹
File F = new File(pathname:"多级路径");//例如D:\\class\\students\\F;
Boolean flag = F.mkdirs();
System.out.println(flag?"文件夹创建成功":"文件夹创建失败");

2. 删除文件

File F = new File("D:\\java\\F");//例如D\\F;
Boolean flag = F.mkdirs();
System.out.println(flag?"文件夹创建成功":"文件夹创建失败");
flag = F.delete();
System.out.println(flag?"delete successfully":"delete unsuccessfully");

运行结果:

3.查询文件

  • 用 文件名.exists() 方法可以判断某个文件存不存在,返回值为boolean。

File F = new File("D:\\java\\F");
Boolean flag = F.mkdirs();
flag = F.isDirectory();
if(flag){
   File[] arr = F.listFiles();
   for(File tempfile : arr)
       System.out.println(tempfile);
}
else{  
           System.out.println("普通文件pass:"+F.getPath());
}
}

//如果文件夹里面有文件夹一般用递归找出每个普通文件

io流

1. 输入流

FileInputStream

  • InputStream是输入流的祖宗类,可被继承,例如FileInputStream和BufferedInputStream都是InputStream的子类。

  • 用FileInputStream封装对象,read()方法读取txt文本里的数据。read的返回值为int,文档的最后一个字符返回值为-1.

  • read方法每次只能读取一个字节,即一个英文字符,中文在不同的编码格式中站不同的字节大小(大于等于2),所以用read方法读取回导致乱码。

        FileInputStream F;
try {
F = new FileInputStream("D:\\java\\F\\F.txt");
int ch = 0;
while((ch=F.read())!=-1) {
System.out.println((char)ch);
}
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();

BufferedInputStream

  • BufferedInputStream可以自定义一次读取的字节数,效率高于FileInputStream。

  • 用BufferedInputStream实例化对象时参数必须传入一个InputStream型的形参,可以是FileInputStream实例化的对象。

        try {
InputStream in = new FileInputStream("D:\\java\\F\\F.txt");
BufferedInputStream bis = new BufferedInputStream(in);
byte[] vec = new byte[2];//每次读取的字节数
int ch=0;
while((ch = bis.read(vec))!=-1)
{
System.out.println(ch);
}
in.close();
bis.close();
}catch(IOException e) {
e.printStackTrace();
}

2. 输出流

FileOutputStream

  • OutputStream也是输出流的祖类。

  • 用FileOutputStream来封装输出流对象,第一个参数为要写入的文件的地址,第二个参数为写入方式,true表示在文件的末尾追加,false表示覆盖当前文件。

  • write方法传入字节型的数组或者一个int字节(read读出来的int),write方法如果没有写入的目标文件夹会自动创建,有的话直接写入。String转字节型数组的方法为getbytes。

        try {
FileOutputStream fos= new FileOutputStream("D:\\java\\F\\fos.txt",true);
String S = "asdfghjkl";
byte[] bytes = S.getBytes();
fos.write(bytes);
fos.close();
}catch(IOException e) {
e.printStackTrace();
}

BufferedOutputStream

  • 用BufferedOutputStream实例化对象时参数必须传入一个OutputStream型的形参,可以是FileOutputStream实例化的对象。

  • write方法中的第一个参数是每次写入的目标文件的字节数,后面两个参数确定了每次写入的实际字节数(大小)。

		try {
OutputStream out = new FileOutputStream("D:\\java\\F\\fos.txt");
BufferedOutputStream bos = new BufferedOutputStream(out);
InputStream in = new FileInputStream("D:\\java\\F\\F.txt");
BufferedInputStream bis = new BufferedInputStream(in);
byte[] vec = new byte[2];//每次读取的字节数
int ch=0;
while((ch = bis.read(vec))!=-1)
{
bos.write(vec,0,ch);
System.out.println(ch);
}
bos.close();
bis.close();
}catch(IOException e) {
e.printStackTrace();
}

12.19 file 与io流的更多相关文章

  1. File(IO流)

    import java.io.File; import java.io.IOException; import org.junit.Test; /** *java.io.File类 *1.凡是与输入输 ...

  2. 乐字节Java之file、IO流基础知识和操作步骤

    嗨喽,小乐又来了,今天要给大家送上的技术文章是Java重点知识-IO流. 先来看看IO流的思维导图吧. 一. File 在Java中,Everything is Object!所以在文件中,也不例外! ...

  3. 21.File和IO流

    IO就可以对文件进行读写 File表示要读写的文件在哪,也可以对文件进行创建,删除等操作 小结: IO流是什么? 1.可以将数据从本地文件中读取出来 2.可以将数据从内存保存到本地文件 File类时什 ...

  4. File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?

    重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...

  5. IO流——File类(文件流类)

    java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...

  6. Java基础知识回顾之六 ----- IO流

    前言 在上一篇文章中,回顾了Java的多线程.而在本篇文章中主要介绍Java IO的相关知识. IO的介绍 什么是IO? IO的名称又来是Input与Output的缩写,也就是输入流和输出流.输入流用 ...

  7. java IO流(一)

    一.IO流概述 1 什么是IO流 (流就是通道对象) IO - Input(输入) Output(输出) 在Java的IO中,流是一个很形象的概念,就像水流一样. 当程序需要读取数据的时候,就会开启一 ...

  8. IO流的工具类

    1.需要先导入jar包: FilenameUtils import org.apache.commons.io.FilenameUtils; public class FilenameUtilesDe ...

  9. IO流——递归(输出所有文件)

    package pers.zbb.File; import java.io.File; public class FileDemo { public static void main(String[] ...

随机推荐

  1. Note -「线性规划」学习笔记

    \(\mathcal{Definition}\)   线性规划(Linear Programming, LP)形式上是对如下问题的描述: \[\operatorname{maximize}~~~~z= ...

  2. tip6:idea 开发工具使用

    使用idea开发工具过程中,各种个性化设置或快捷方式使用汇总 1.设置默认maven为本地 2.编写代码时提供完整的参数提示信息 3.编辑器列模式 使用alt+鼠标左键,鼠标下移即可.使用版本idea ...

  3. Spring Boot AOP 扫盲,实现接口访问的统一日志记录

    AOP 是 Spring 体系中非常重要的两个概念之一(另外一个是 IoC),今天这篇文章就来带大家通过实战的方式,在编程猫 SpringBoot 项目中使用 AOP 技术为 controller 层 ...

  4. Hyperledger Fabric 2.x Java区块链应用

    一.说明 在上一篇文章中 <Hyperledger Fabric 2.x 自定义智能合约> 分享了智能合约的安装并使用 cli 客户端进行合约的调用:本文将使用 Java 代码基于 fab ...

  5. Spring MVC 是什么? 核心总结

    SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰 ...

  6. Shell 函数带中横线问题排查

    Shell 中编写的函数,如果函数名中带了中横线,在使用 /bin/sh 执行时会报错. ➜ subprocess git:(master) ✗ cat kubectl.sh _kubectl_api ...

  7. Elasticsearch 第九篇:集群配置与搭建

    h2.post_title { background-color: rgba(43, 102, 149, 1); color: rgba(255, 255, 255, 1); font-size: 1 ...

  8. Kafka经典三大问:数据有序丢失重复

    Kafka经典三大问:数据有序丢失重复 在kafka中有三个经典的问题: 如何保证数据有序性 如何解决数据丢失问题 如何处理数据重复消费 这些不光是面试常客,更是日常使用过程中会遇到的几个问题,下面分 ...

  9. 数据分析刚入门?这几个BI软件你一定得知道!

    在当前乃至未来5年的职场中,将取代你的可能不是 AI ,而是比你"更懂"数据分析的同事.毕竟,现在做什么都讲究"用数字说话",很多岗位在招聘JD中均给出了&qu ...

  10. 【windows 操作系统】【CPU】用户模式和内核模式(用户层和内核层)

    所有的现代操作系统中,CPU是在两种不同的模式下运行的: 注意以下内容来自微软: windows用户模式和内核模式 运行 Windows 的计算机中的处理器有两个不同模式:用户模式 和内核模式 . 用 ...