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. Android SugarORM(3)

    Android Sugar ORM (3) Android Sugar ORM 查询 我们在此之前介绍了一些关于Sugar ORM的简单操作, 现在我们就查询来具体说一下 Sugar ORM中的fin ...

  2. Selenium自动化测试面试题合集

    1.什么是自动化测试.自动化测试的优势是什么? 通过工具或脚本代替手工测试执行过程的测试都叫自动化测试. 自动化测试的优势: 1.减少回归测试成本 2.减少兼容性测试成本 3.提高测试反馈速度 4.提 ...

  3. 华为模拟器在三层交换机上实现dhcp的配置

    <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sys sw1[sw1]dhcp enable Inf ...

  4. 李宏毅机器学习笔记——新手感悟——PM2.5作业

    python也不会,计算机也不会,啥都不会,只带了个脑子考了计算机研究生.研究生选了人工智能方向.看来注定是漫长的学习之旅. PM2.5作业,我是一个字都看不懂.所以我采用了直接看答案的方案.把答案看 ...

  5. python运算符优先级及部分运算

    在python里面,有很多运算符,比如:算术运算符.赋值运算符.比较运算符.逻辑运算符.成员运算符.身份运算符和位运算符等.这里主要来看看这些运算符的优先级:从上到下优先级依次递减. 优先顺序 运算符 ...

  6. 2、CPU是怎么实现运算的 ?

    我先来了解一下芯片构造,芯片由晶体管组成的.晶体管组成逻辑运算与或非电路. P型半导体的"P"表示正电的意思,取自英文Positive的第一个字母. N型半导体的"N&q ...

  7. Python:Scrapy(四) 命令行相关

    学习自Scrapy 2.4.1 documentation 这一部分是对官方文档的学习,主要是理解翻译,来对之前的应用部分进行详细的理论补充. 1.保存爬取到的要素的方式: ①运行scrapy指令时, ...

  8. 分布式多线程 EOFError: Ran out of input

    原因: 在将Queue注册到网上的时候,callable参数使用了lambda匿名函数,而Windows下绑定调用接口不能用lambda QueueManager.register('get_task ...

  9. oracel数据库ORA-28001: the password has expired

    调试c#项目时登录用户不成功ORA-28001: the password has expired错误 密码过期失效 网上查了一下,是Oracle11g密码过期的原因 Oracle提示错误消息ORA- ...

  10. fibnacci数列的python实现

    费波那契数列(Successione di Fibonacci) 又译为费波拿契数.斐波那契数列.费氏数列.黄金分割数列 在数学上,费波那契数列是以递归的方法来定义: 用文字来说,就是费波那契数列由0 ...