第六章:输入和输出处理(一)

第六章:输入和输出处理(一)

一,什么是输入输出

​ 我们在写java程序的时候,我们会从磁盘中调用一些资源,然后展示到控制台中,我们所说的输入和输出,是相对于程序来说的。

1. Java I/O

​ java的I/O就是我们所了解的输入和输出,从磁盘到程序是input,从程序到控制台是output;通常我们的输入来自于键盘,然后经过处理,把结果输出到控制台;我们在这学的是从文件中取出数据,存储到另一个文件中。

在这里插入图片描述

2. 文件

​ 学输入输出的时候的,我们要用到文件,我们的文件一般存储在硬盘,闪存等一些存储工具上。

那么什么是文件呢?

相关记录或放在一起的数据的集合

如何用java访问文件?

​ java有关于访问文件的API :java.io.File 类

二,File

1.File类访问文件属性

File是一个类,所以我们在用他的时候,要new 出他的对象。

File file = new File( String pathname);//pathname可以是决定路径,也可以是相对路径
//还有其他的构造方法用于拼接路径
//1. File(String parentPath,String childPath)
//2. File(File parentFile,String childPath)
//例子:
File file = new File("c:\\111\\test.txt");//这就可以看作file对象和这个文件的绑定。
File file = new File("c:\\111","test.txt");

绑定之后我们就可以进行一系列的操作了。

2.File类的常用方法

在这里插入图片描述


File file = new File("D:\\1.txt");
        file.createNewFile();//创建文件
        System.out.println("创建test文本成功");
        System.out.println(file.exists());//判断是否存在
        System.out.println(file.isFile());//是否是文件
        System.out.println(file.isDirectory());//是否是目录
        System.out.println(file.getPath());//得到相对路径
        System.out.println(file.getAbsolutePath());//得到绝对路径
        System.out.println(file.getName());//获得文件名
//        System.out.println(file.delete());//删除该文件
        System.out.println(file.length());//获得文件长度(字节)

运行结果:

创建test文本成功
true
true
false
D:\1.txt
D:\1.txt
1.txt
0

三,流

流的分类

​ java的流分类有两种方式:

​ 1.按流区分

  • 输入流 InputStream和Writer是基类(最大的父类)。
  • 输出流 OutputStream和Reader是基类(最大的父类)

在这里插入图片描述
2.按处理数据单元分

  • 字符流 InputStream 和 OutputStream
  • 字节流 Reader 和 Writer
    在这里插入图片描述
什么是流?它以什么方式传输数据?
  • 流是一组有序的数据序列。
  • 是以先进先出方式发送信息的通道

在这里插入图片描述

它可以看作是一个水管的结构,我们进去的数据就像水一样从一端流进,从另一端流出。

输入输出流原理

在这里插入图片描述

输入流就是从起源数据源读取数据到程序,输出流就是把程序读取到的数据写入到目标数据源上。

四,InputStream分支类和方法

InputStream类常用方法
  • int read( )
  • int read(byte[] b)
  • int read(byte[] b,int off,int len)
  • void close( )
  • int available():可以从输入流中读取的字节数目
子类FileInputStream常用的构造方法
  • FileInputStream(File file)
  • FileInputStream(String name)
//1.导包
import java.io.IOException;
import java.io.FileInputStream;
//2.实例化对象
FileInputStream fis= new FileInputStream("c:\\test.txt");
//得到可读长度
fis.available(); 
//读数据
fis.read(); // fis.read(byte[] bytes)可以读到一个byte数组中
//关闭流
fis.close();

​ 读取数据示例:

File file = new File("d:\\我的青春谁做主.txt");
FileInputStream fis = new FileInputStream(file);
System.out.println("文件大小:"+fis.available());
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();

五,OutputStream分支类和方法

OutputStream类常用方法
  • void write(int c)
  • void write(byte[] buf)
  • void write(byte[] b,int off,int len)
  • void close()
  • void flush():强制把缓冲区的数据写到输出流中
子类FileOutputStream常用的构造方法
  • FileOutputStream (File file)
  • FileOutputStream(String name)
  • FileOutputStream(String name,boolean append)

注意:

1.前两种构造方法在向文件写数据时将覆盖文件中原有的内容
2.创建FileOutputStream实例时,如果相应的文件并不存在,则会自动创建一个空的文件

OutputStream的使用和InputStream的使用差不多,就不在距离了。

//1.导包
import java.io.IOException;
import java.io.FileOutputStream;
//2.实例化对象
FileOutputStream fos = new FileOutputStream("text.txt");
//设置写入的数据
String str ="好好学习Java";
byte[] words  = str.getBytes();
fos.write(words, 0, words.length); 
//关闭流
fis.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值