day13

I/O流

定义:数据在两设备传输称为流,流是一组有顺序的,有起点和终点的字节集合

I 是input的缩写,表示输入流

O是output缩写,表示输出流

字节流(视频等)

输入InputStream FileInputStream DataInputStream

输出OutputStream FileOutputStream DataOutputStream

public static void main(String[] args){
try{
inputData();//调用字节输入流
}catch(IOException e){
e.printStackTrace();
}
}
//===========字节流==========
//-----------字节输入流------- public static void inputData() throws IOException{
//1.创建file对象,加载文件物理路径
File file = new File("D://siTu/测试.txt");
//2.创建字节输入流
InputStream in = new FileInputStream(file);
//3.返回字节输入流的刻度字节长度
int len = in.available();
/**全英文文档
for(int i = 0; i < size; i++){
char c = (char)in.read();//in.read()返回ascii码的十进制数
//read()返回的是ascii码的十进制数,每个数字对应一个字符
}
*/ /**含中文文档
先创建一个byte数组用于接收读取的内容
for循环把读取的数据全都强转后放在byte数组中
输出一个byte数组转成的字符串,从而处理中文
*/
byte[] b = new byte[len];
for(int i = 0; i < b.length; i++){
b[i] = (byte)in.read();
}
System.out.println(new String(b));
}
//-----------字节输出流—-----------
public static void outputStream{
//新建文件对象,并且获取物理地址
File file = new File(D://siTu/测试.txt);
//输入需要添加的字符
String str = "元气";
//创建字节输出流FileOutputStream(File file, boolean append)是否在file文件后拼接,true拼接
OutputStream out = new FileOutputStream(file,true);
//OutputStream out = new FileOutputStream(file); out.write(out.getByte());//把字符串转化成字节数组后 再写入文件
out.flush();
out.close(); }

字符流(文档)

输入 Reader FileReader

​ BufferedReader

输出 Writer FileWriter

​ BufferedReader

字符输入流读文件

//===========字符流==========
//-----------字符输入流------- public static void OutputDate(){
File file = new File("D://siTu/测试.txt");
InputStream inp = new InputStream(file);
InputSteramReader reader = new InputStreamReader(inp,"UTF-8");
BufferedReader br = new BufferedReader(reader);
/**
String str = null;
while((str = br.readLine()) != null){
System.out.println(str);
}
*/
byte[] bt = new byte[1024];
/*
int len = in.read(bt);//每次读取指定数组长的字节数,并将读到的字节传入大数组中,返回读到的字节长度
while(len != -1){
out.write(bt);
len = in.read(bt);
}
*/
int len = -1;
while((len = in.read(bt)) != -1){
out.write(bt);
}
out.close();
in.close();
}

字符输出流

//-----------字符输出流-------

public static void outputreader(){
File file = new File("D://siTu/测试1.txt");
String str = "zg";
OutputStream out = null;
OutputStreamWriter writer = null;
BufferedWriter bw = null; try{
out = new OutputStream(file,true);
writer = new OutputStreamWriter(out,"UTF-8");
bw = new BufferedWriter(writer); bw.write("1111");
bw.newLine();
bw.write("aaaa"); bw.flush();
}catch(IOException e){
e.printStrackTrace();
}finally{
(try catch)if(bw != null) bw.close();
(try catch)if(writer != null) writer.close();
(try catch)if(out != null) out.close();
}
}

File类常用的方法

File file = new File("D://siTu/ceshi.txt");

1.文件是否存在

boolean has = file.exists();

2.是否是 一个文件

boolean b = file.isFile();

3.判断是否是一个文件夹(目录)

boolean b1 = file.isDirectory();

4.获取当前目录下所有文件名

String[] fileNames = file.list();

5.获取当前目录下所有文件对象

File[] files = file.listFiles();

6.删除文件或者文件夹(boolean)

file.delete();

7.当文件,文件夹存在时,执行删除

file.deleteOnExit();

8.创建文件夹boolean

file.mkdir();

9.获取文件名

String name = file.getName();

10.创建新的文件

try {
boolean tar2 = file.createNewFile();
System.out.println(tar2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

11.判断一个文件是否可读boolean

file.canRead();

12.判断一个文件是否可写boolean

file.canWrite();

复制大文件

public static void copy(){
InputStream in = new FileInputStream(new File("D://siTu/测试2.txt"));
OutputStream out = new FileOutputStream(new File("D://siTu/测试22.txt")); /** int len = in.available();
syso(len);
for(int i = 0; i < len ; i++){
out.write(in.read);
}
out.close();
*/
/**
byte[] bt = new byte[1024];
int len = in.read(bt);
while(len != -1){
out.write(bt);
len = in.read(bt);
}
out.close();
in.close();
*/ byte[] bt = new byte[1024];
int len = -1
while((len = in.read(bt) != -1){
out.write(bt);
}
out.close();
in.close();
}

day13 I/O流——字节输入输出流、字符输入输出流 & File常用类 & (字节)复制大文件的更多相关文章

  1. 接收键盘输入的字符串,用FileWirter类将字符串写入文件,用FileReader类读出文件内容显示在屏幕上

    public class SY63 { public static void main(String[] args) throws Exception { System.out.print(" ...

  2. C# IO操作(四)大文件拷贝(文件流的使用)、文件编码

         大文件拷贝(文件流的使用).文件编码 首先说一下大文件拷贝和文件流,因为计算机的内存资源是有限的,面对几个G甚至更大的文件,需要通过程序来完成拷贝,就需要用到文件流(因为我们无法做到把文件一 ...

  3. Java中的字节输入出流和字符输入输出流

    Java中的字节输入出流和字符输入输出流 以下哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream D In ...

  4. Java精选笔记_IO流(字符输入输出流、字符文件输入输出流、字符流的缓冲区)

    字符流 Reader是字符输入流的基类,用于从某个源设备读取字符 Writer是字符输出流,用于向某个目标设备写入字符 字符流操作文件 字符输入流FileReader,通过此流可以从关联的文件中读取一 ...

  5. IO流 - 字节输入输出流,文件的复制

    IO流 I:input - 输入(读取),eg:把硬盘的内容读取到内存 O: output - 输出(写入) eg:把内存中的东西写入硬盘保存 流:数字(字符/字节) 一般1个字符=2Byte,1By ...

  6. Java修炼——文件字节输入输出流复制和缓冲流复制

    一:文件字节输入输出流复制 首先明确数据源和目的文件,然后就是"中转站",最后就是关闭 package com.bjsxt.ioproject; import java.io.Fi ...

  7. IO流的字节输入输出流(InputStream,OutputStream)

    字节输出流与文件字节输出流 文件存储原理和记事本打开文件原理 OutputStream及FileOutputStream import java.io.FileOutputStream; import ...

  8. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  9. Java Io 流(输入输出流)

    IO流,也就是输入和输出流,可分为字节流和字符流. 1. 字节流 (1). InputStream 输入流,用于读取文件 输入流常用API: inputStream.read()  读取一个字节 in ...

  10. IO流文件字符输入输出流,缓冲流

    由于字节输入输出流在操纵Unicode字符时可能有乱码现象 于是就有了操作字符的输入输出流 Reader ,Writer和他们的子类FileReader,FileWrite(其实就是用来辅助构造的 W ...

随机推荐

  1. Django 简介和版本介绍

    一.简介 官方地址:https://www.djangoproject.com Django 是一个由Python 编写的具有完整架站能力的开源Web框架.使用 Django,只要很少的代码,开发人员 ...

  2. 通过vNode实现给列表字段打标签

    问题 如何给列表数据打标签?类似下面这种样子 思路 数模转化(对接口请求回来的数据进行过滤标记,返回新的数据) 渲染新的数据模型 实现 1.过滤数据,需要打标签的采用jsx写法 业务数据的处理我封装在 ...

  3. 4.云原生之Docker容器数据持久化介绍与实践

    转载自:https://www.bilibili.com/read/cv15182308/?from=readlist #### 创建一个web容器并创建一个数据卷挂载到容器的/webapp目录下(默 ...

  4. 使用 Loki 收集 nginx 日志

    转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247492075&idx=1&sn=ba63984111 ...

  5. MySQL 在 Kubernetes IPVS 模式下引发的 TCP 超时问题

    文章转载自:https://mp.weixin.qq.com/s/XQ2SlCYxvXPY0rRRO-CURA

  6. Ingress

    一.需求背景 固定对外提供服务采用了NodePort方式映射并固定了30001端口,但是,该端口默认范围是30000~32767,并且我们的web服务一般都是80.443端口对外,因此我们产生了如下几 ...

  7. Java之POI导出Excel(二):多个sheet

    相信在大部分的web项目中都会有导出导入Excel的需求,之前我也写过一篇导出单个sheet工作表的文章,没看过的小伙伴可以去看哈,链接也给大家放出来了:导出单个sheet 但是在我们日常的工作中,需 ...

  8. aws-cli命令-vpcs及subnets相关的查询

    关于AWS上vpcs及subnets相关的查询,常用的命令如下: # 查询所有的vpc信息 aws ec2 describe-vpcs --output json # 查询所有所有的subnet相关的 ...

  9. Invalid bound statement (not found): com.zheng.mapper.UserMapper.login

    错误的原因:mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到. mapper接口开发规范 1.Mapper.xm ...

  10. 你真的会使用Typora吗?

    你真的会使用Typora吗? 标题 一级标题:# 空格+内容 二级标题:## 空格+内容 字体 加粗:内容两边各加两个*号 你真美! 斜体:内容两边各加一个*号 你真帅! 删除线:两边各加两个~号(波 ...