博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
11、java当中的IO
阅读量:4084 次
发布时间:2019-05-25

本文共 1488 字,大约阅读时间需要 4 分钟。

1、I/O操作的目标:对数据进行读写操作。

从数据源(文件、键盘、网络等)当中读取数据,以及将数据写入到数据目的地(文件、屏幕、网络等)当中。

I/O的流向:文件等---------进入到java程序---------输出到文件等。

                   数据的流向以java程序为参照物。

2、IO的分类方法

第一种分法:输入流和输出流;

第二种分法:字节流和字符流;

第三种分法:节点流和处理流。

3、读取文件和写入文件的方法

(1、IO当中的核心类:InputStream  OutputStream是父类都是抽象类,必须用子类来生成对象。

                  最常用子类:FileInputStream   (从硬盘的文件中读取数据)

                                        FileOutputStream(将数据写入到硬盘文件)

(2、核心方法:

InputStream

int read(byte [] b,int off, int len)    //以字节的形式读取数据并放入比特类型的数组里,从数组的第几位开始放,读取一//一次最多读多少数据, 返回一次读取的字节数。一般off=0,len是数组的长度。

OutputStream:

void write(byte [] b,int off, int len  //把要往文件里写的数据变成比特类型的数组,偏移量,总共要写多少数据。

(3、程序第一步:导入类:import java.io.*;            //*号是导入io包里所有类

class Test{

   public static void main(String args []){

       FileInputStream fis = null;           //声明输入流引用,用来指向FileInputStream的一个对象

       FileOutputStream fos = null;//声明输出流的引用

try {

                fis = new FileInputStream("e:/src/from.txt"); //参数是文件的位置

                fos = new FileOutputStream("e:/src/to.txt");//参数是输出文件的位置

                byte [] buffer = new byte [100];   //因为读取的文件要放入比特类型的数组,这里要声明一个字节数组

                int temp = fis.read(buffer, 0,100);  //调用输入流对象的read方法,读取数据:将文件读到buffer数组里

                fos.write(buffer, 0, temp);

              

/*将字节数据还原成字符

String s = new String(buffer);生成一个String对象,字节数组作为参数

s = s.trim();   //调用一个string对象的trim方法,将会去除这个字符串的首位空格

system.out.println(s);

*/

               

          }

          catch(Exception e){

                   system.out.println(e);

          }

          finally{

               try{

                fis.close();

                fos.close();   //关闭输出流

               }

              catch(Exception e){

                   system.out.println(e);

               }     

           }

     }

}

字符流:读写文件时是以字符为单位。

字符输入流:Reader     子类:FileReader     方法:int read(char [] c, int off, int len)

字符输出流:Writer       子类:FileWriter        方法:void write(char [] c, int off, int len)

转载地址:http://yhani.baihongyu.com/

你可能感兴趣的文章
MAVLink学习之路05_MAVLink应用编程接口分析(也有讲STM32下的收发函数)
查看>>
找到了中文版的mavlink手册
查看>>
浅谈飞控开发的仿真功能
查看>>
我觉得在室内弄无人机开发装个防撞机架还是很有必要的,TBUS就做得很好。
查看>>
serial也是见到很多次了,似乎它就是一种串行通信协议
查看>>
TBUS的一些信息
查看>>
PX4+激光雷达在gazebo中仿真实现(古月居)
查看>>
专业和业余的区别就在于你在基础在基本功打磨练习花的时间
查看>>
通过mavlink实现自主航线的过程笔记
查看>>
Ardupilot飞控Mavlink代码学习
查看>>
这些网站有一些嵌入式面试题合集
查看>>
我觉得刷题是有必要的,不然小心实际被问的时候懵逼,我觉得你需要刷个50份面试题。跟考研数学疯狂刷卷子一样!
查看>>
我觉得嵌入式面试三要素:基础吃透+项目+大量刷题,缺一不可。不刷题是不行的。而且得是大量刷,刷出感觉套路,别人做题都做得是固定题型套路条件反射了,你还在那慢慢理解慢慢推是不行的,也是考研的教训。
查看>>
相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像。
查看>>
现在来看,做个普罗米修斯的docker镜像对我而言并不难,对PX4仿真环境配置也熟悉了。
查看>>
删除docker容器和镜像的命令
查看>>
VINS-Fusion Intel® RealSense™ Depth Camera D435i
查看>>
使用Realsense D435i运行VINS-Fusion并建图
查看>>
gazebo似乎就是在装ROS的时候一起装了,装ROS的时候选择的是ros-melodic-desktop-full的话。
查看>>
React + TypeScript 实现泛型组件
查看>>