javaIO流
IO流 : (input  output) 输入输出流 :输入 :将文件读到内存中 输出:将文件从内存输出到其他地方。
IO技术的作用:主要就是解决设备和设备之间的数据传输问题。比如:硬盘到--->内存,内存数据--->硬盘中--->内存,内存数据--->硬盘中 把键盘中的数据写入到内存。
将U盘中文件 拷贝到电脑中 :输入流--->读到内存 --->通过输出流读到电脑磁盘中。
IO的应用场景:
比如:打卡机导出信息表
比如:注册的时候图片的上传。
比如:下载功能
解析XML
数据保存到本地,数据一个永久保存。数据保存到磁盘上是以文件的形式存在。所以现在学习文件的造作。
java中是通过File文件类来操作文件和文件夹。
目录的分隔符:
在Windows系统上目录分隔符:\,但是Linux系统上的目录分隔符是:/
注意点:在Windows上\或者/都可以作为目录的分隔符。如果你用的反斜杠
路径问题:
 结对路径:文件在硬盘上的完整路径。绝对路径一般都是以盘符开头D:\\a.txt 
 相对路径:相对路径就是资源文件相对当前程序所在的路径。
 
IO流 : 作用 :用于设备和设备之间的数据传输。
File类的使用 :操作问价的属性
IO流:用来操作文件的数据。
IO流的分类:
流按照操作数据的类型分为两种: 字节流  ,字符流
字节流 : 读取的是文件的二进制数据,不会对二进制做处理。不会解析成比看得懂的数据。
字符流 :读取的也是二进制数据,他会将二进制数据转化为我们能过识别的字符(解码)。  字符流是以字符单位的。
字符流 = 字节流 + 解码。
流按照流的方向: 输入流和输出流。
判断流是输出还是输入: 以当期的应用程序为参考 ,观察数据是流入还是流出,如果是流入就输入流 ,如果是流出就是输出流。
 //====================字节流========================
 1.字节输入流:
InputStream :此抽象类是表示字节输入流的所有类的超类 ,抽象的类
如何判断一个流值字节输入流 :
判断一下他的类名是否以InputStream结尾。
使用 FileInputStream: 是InputStream的子类
FileInputStream使用步骤:
1.找到目标文件
2.建立通道
      3.创建一个缓冲区
4.读取数据
      5.关闭资源
public class Demo1 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//         getFile();
// getFile2();
// getFile3();
getFile4();
}
//方式四:通过创建缓冲区和循环的方式来读取
public static void getFile4() throws IOException{
  //1.找目标文件
  File file = new File("D:\\java课件及资料\\第十九次课\\代码\\Day19\\src\\com\\beiwo\\homework\\HomeWork.java");
  //2.建立通道
  FileInputStream fileInputStream = new FileInputStream(file);
  //3.创建一个缓冲区
  byte[] b = new byte[1024]; // 一般写1024倍数
  //4.读取数据
  int count = 0;
  while((count = fileInputStream.read(b))!=-1){
  
  System.out.println(new String(b,0,count));
  }
  //5.关闭资源
  fileInputStream.close();
}
//方式三:创建缓冲区来读取数据     缺陷不能够读取一个完整的文件
public static void getFile3() throws IOException{
//1.找目标文件
File file = new File("D:\\a.txt");
//2.建立通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.创建一个缓冲区
byte[] b = new byte[1024];
//4.读数据
//缓冲区来读数据 : 数据存在哪里  
//数据是存在缓存区字节数组中的
//返回值就是文件的大小。
int count = fileInputStream.read(b);
System.out.println(count);
//String里面帮我们做了解码功能
System.out.println(new String(b, 0, count));
//5.关闭资源
fileInputStream.close();
}
//方法二:用循环来读取字节数 缺点读取的效率不高
public static void getFile2() throws IOException{
//1.找目标文件
File file = new File("D:\\a.txt");
//2.建立通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.读数据
/*for(int i = 0;i<file.length();i++ ){//有多少个字节就去多少次
char c = (char)fileInputStream.read();
System.out.print(c);
}*/
int c 0;
//通过while循环调用read()的方法 ,如果返回的值以-1表示文件没有内容了。
while((c fileInputStream.read())!= -1){
System.out.print((char)content);
}
//4.关闭资源
fileInputStream.close();
}
//方法一:每次只读取一个字节
public static void getFile() throws IOException{
//1.找到目标文件
File file = new File("D:\\a.txt");
//2.建立通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.读取文件中的数据
//read() 只获取一个字节
int data = fileInputStream.read(); //a 第一个字节  
int data2 = fileInputStream.read();
System.out.println("获取的数据:"+data2);
//4.关闭资源(释放资源)
fileInputStream.close();
}
}

package com.beiwo.InputStream;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;


2.字节输出流 :
       OutPutStream : 他也是所有字节输出流的超类 ,也是一个抽象的类 ,使用子类
            -----FileOutputStream   文件输出流
            
      
      FileOutputStream 的使用步骤:
            1.找到目标文件
            2.建立通道
            3.写入数据
            4.关闭资源
            
  FileOutputStream的使用注意事项:
          1.使用FileOutputStream写数据的时候,如果目标文件不存在,那么就会自己创建一个目标文件对象。
          2.使用FileOutputStream写数据的时候,如果目标文件存在,先将里面的数据清空,在写入数据。
          3.使用FileOutputStream写数据的时候,如果目标文件存在,想将数据在原有的基础上追加,这个
                             时候就应该使用FileOutputStream(File file, boolean append) 构造方法,  append如果为true表示
                             可以追加数据,反之不信。
          4..使用FileOutputStream写数据的时候,用write(int a)方法写数据,虽然接收的是int ,但实际上只有一个字节的数据,
                            操作的是低八位的二进制 ,其他的24位全部丢掉。
                            
 
                            
 练习题: 将一张图片拷贝到另外一个地方。
 
 字节输出流代码:
public class Demo2 {

/**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
      writeData();
        
        //writeData2();
      
      FileInputStream inp = new FileInputStream(new File("D:\\a.txt"));
      byte[] b = new byte[1024];
      inp.read(b);
      System.out.println(Arrays.toString(b));
      
    }
    
    //方式二:
    public static void writeData2() throws IOException{
        //1.找目标文件
        File file = new File("D:\\a.txt");    
        //2.创建一个通道
        FileOutputStream outputStream = new FileOutputStream(file,true);  // 在这一步创建的文件。
        //3.创键一个字节数组
        String str = "hello word";
        //将字符串变为字节数组
        byte[] b = str.getBytes();
        
        //4.写入数据
        outputStream.write(b);
        
        //5.关闭资源
        outputStream.close();
        
        
    }
    
    //方式一
    public static void writeData() throws IOException{
        //1.找目标文件
        File file = new File("D:\\a.txt");
        
        //2.创建一个通道
        FileOutputStream outputStream = new FileOutputStream(file);
        
        //3.开始写入数据
        /*int a = 10; // 4个字节  
        outputStream.write(a); //每次输出一个字节
        outputStream.write('b');
        outputStream.write('c');*/
        
        // 0000-0000 0000-0000 0000-0001 1111-1111  ==  511
        int a = 127;
        outputStream.write(a); // 255
        //4.关闭资源
        outputStream.close();
    }

}

转载于:https://www.cnblogs.com/jsjlxgf/p/6134764.html

java基础之 IO流相关推荐

  1. 【Java基础】· IO流习题详解

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  2. Java基础学习—— IO流

    Java基础学习-- IO流 1 文件 1.1 文件的创建 1.2 文件常用的方法 2 IO流 2.1 FileInputStream 2.2 FileOutputStream 2.3 文件的拷贝 2 ...

  3. Java基础进阶IO流概述

    1.IO流,什么是IO? I : Input O : Output 通过IO可以完成硬盘文件的读和写. 2.IO流的分类? 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物 往内存 ...

  4. Java基础之IO流

    IO流用来处理设备间数据传输,java对数据的操作是通过流的方式,而这些操作流的对象被封装在IO包中.流可以分为字符流和字节流.字符流可以设置编码方式,这就使得处理文本更加方便. IO常用基类 字节流 ...

  5. Java基础知识——IO流

    简介 IO是指Input/Output,即输入和输出.以内存为中心: Input指从外部读入数据到内存,例如,把文件从磁盘读取到内存,从网络读取数据到内存等等 Output指把数据从内存输出到外部,例 ...

  6. 【java基础】IO流是啥?有啥用?(上)

    今天我们说说java代码中对文件的操作,比如新建删除文件,读取文件内容等. File类 File类用于操作文件和目录,可对文件或目录进行新建,删除和重命名等操作.但是如果要访问文件内容本身,就需要用到 ...

  7. Java基础:IO 流中的 flush

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点 这里 可以跳转到教程. 内容概要 Java IO ...

  8. Java基础之IO流(一)

    IO流(一) IO流:输入输出的流动 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流 . 流按流向分为 ...

  9. Java基础之IO流操作

    第14章 File类与IO流 主要内容 File类 字节流 字符流 文件流 缓冲流 转换流 数据流 对象流 打印流 Scanner与System与IO流 教学目标 使用File类对象表示文件或目录 能 ...

最新文章

  1. 《Akka应用模式:分布式应用程序设计实践指南》读书笔记1
  2. ngx_lua操作Redis和Mysql
  3. 巨人网络李东旭:关于提高游戏流畅性的那些事
  4. Java中final和static对修饰类、方法、属性的总结
  5. 《走遍中国》珍藏版(二)
  6. 沉思滥用:“强力使用,破坏滥用”
  7. python3的pyqt5 qtablewidget按数据大小排列_InnoDB为什么要选择B+树来存储数据?
  8. ZooKeeper观察员--ZooKeeperObservers
  9. 开源贡献 计算_通过Hacktoberfest的镜头看开源贡献的状态
  10. jdbc 执行oracle命令,JDBC操作oracle
  11. oracle java 面试题及答案_Oracle面试题及答案
  12. 程序应该怎样写比较规范
  13. excel图表模板免费下载_40个免费的信息图表模板下载
  14. 泛函分析复习笔记(二)线性算子与线性泛函
  15. linux命令之拒绝服务-关机重启shutdown-init0-6删库(滑稽脸)
  16. ubuntu开启键盘背光灯
  17. 人生永无止境的意思是什么_永无止境是什么意思
  18. 视觉增强词向量:我是词向量,我开眼了!
  19. 仿滴滴出行页面Demo
  20. STM32(基于HAL库)驱动0.96寸OLED屏幕(六脚)

热门文章

  1. 学习git的第一节课
  2. SpringBoot设置默认主页
  3. PAT福尔摩斯的约会
  4. 社会工程学三本_1.9万人报考,扩招近千人!被戏称为“大三本”的985——东南大学,低调有实力!...
  5. ESL4.3 线性判别分析(LDAQDA)学习笔记
  6. 用matlab进行批量优化,多目标优化实例和matlab程序
  7. 【夏目鬼鬼分享】RabbitMQ发布/订阅广播模式
  8. rk3399 hdmi HDCP key烧录
  9. linux ls 目录颜色,改变ls 中目录颜色的方法
  10. ibm服务器型号规则,IBM服务器型号是怎么命名的?