为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 字节流之文件输出流——FileOutputStream 1.FileOutputStream是OutputStream的子类,实现了向文件中写入数据。 2.对一个文件进行写操作需要创建FileOutputStream对象 FileOutputStream out = new FileOutputStream(fileName);//文件不存在,创建;文件存在,删除之后创建 FileOutputStream out = new FileOutputStream(fileName, true);//文件不存在,创建;文件存在,追加 out.write('A');//写一个字符,写入低8位 //写一个字节数组 byte[] gbk = "中国".getBytes("gbk"); out.write(gbk); 3.copy一个文件内容到另一个文件 public static void copyFile(File srcFile, File destFile) throws IOException{ FileInputStream in = new FileInputStream(srcFile); //srcFile是读出文件 FileOutputStream out = new FileOutputStream(destFile); //destFile是写入文件,如果不存在会直接创建 byte[] buf = new byte[8*1024]; int b; while((b = in.read(buf,0, buf.length)) != -1){ //从输入流中读出字节填充到buf的0~结尾位置 out.write(buf, 0, b); //将字节数组中0~结尾位置的字节流写入到输出流 out.flush(); //最好加上 } in.close(); out.close(); }
    查看全部
  • DataOutputStream和BufferedOutputStream
    查看全部
    0 采集 收起 来源:字节缓冲流

    2015-09-17

  • 字节流之文件输入流——FileInputStream 1.FileInputStream是InputStream的子类 具体实现了在文件上读取数据 2.从文件读取数据,并按照16进制输出到控制台 public static void printHex(String fileName) throws IOException{ //使用FileInputStream对象读文件 FileInputStream in = new FileInputStream(fileName); int b, i =1; while((b=in.read())!=-1){ //判断是否读到文件结尾 System.out.print(Integer.toHexString(b)+" "); if((i++%10) == 0) System.out.println(); } } 3.从文件读取数据到字节数组中 public static void printHexByByteArray(String fileName) throws IOException{ FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[1024]; int bytes = 0; int i=1; //批量读取数据到字节数组中,可以指定开始位置和长度 while((bytes=in.read(buf, 0, buf.length))!=-1){ for (int j=0;j<bytes;j++) { System.out.print(Integer.toHexString(buf[j] & 0xff)+" "); if((i++%10) == 0) System.out.println(); } } in.close(); } 4.这两个读数据的方法区别在于: 批量读取到字节数组时,效率更高,应用更广泛。 注意: 用完FileInputStream完之后,要关闭。
    查看全部
  • 字节IO流 1.主要内容如图 注意:InputStream和OutputStream是两个抽象类 键盘是输入文件,从键盘读数据写入file
    查看全部
  • FileInputStream:具体实现了在文件上读取数据
    查看全部
  • IO流分为输入流、输出流 还有字节流、字符流 1、字节流: (1)InputStream:抽象了应用程序读取数据的方式 (2)OutputStream:抽象了应用程序写 出数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 int b = in.read();读取一个字节无符号填充到int低八位.-1是EOF in.read(byte[] buf) 读取数据填充到字节数组buf in.read(byte[] buf,int start, int size)读取数据到字节数组buf从buf的start位置开始存放size长度分数据 4)输出流基本方法 out.write(int b)写出一个byte到流,b的低8位 out.write(byte[] buf)将buf字节数组都写到流 out.write(byte[] buf, int start,int size) 字节数组buf从start位置开始写size长度的字节到流
    查看全部
  • RandomAccessFile类 1.主要内容(如图) 2.需要强调: (1)磁盘文件是字节存储的 (2)打开文件要指定读写模式 new RandomAccessFile(file, "rw"); (3)写方法一次写一个字节 (4)读也是一次读一个字节 (5)读写完毕后一定要关闭文件,否则会出现意外的错误 3.创建一个RandomAccessFile对象 RandomAccessFile raf = new RandomAccessFile(fileDemo, "rw"); raf.write('a'); //写字符,一次写一个字节 raf.writeInt(0x7fffffff);//写一个int,一次写完 //写一个字节数组,一次写完 String s = "中"; byte[] gbk = s.getBytes("gbk"); raf.write(gbk); //写一个字节数组 //读文件到字节数组,一次读多个字节 //读文件 raf.seek(0); //设置文件指针位置为开头 byte[] buf = new byte[(int) raf.length()]; raf.read(buf); //文件所有内容读到buf字节数组中 注意: 这个过程下来,共写入7个字节。 不再读写时,需要raf.close()关闭文件。
    查看全部
  • 单字节读取 不适合读取较大的文件
    查看全部
  • FileInputStream 具体了应用程序在文件上的读取数据
    查看全部
  • 字节流 InputStream OutputStream 他们都是抽象类 InputStream 抽象了应用程序读取数据 OutputStream 抽象了应用程序写出数据
    查看全部
  • xx.seek() 指针定位
    查看全部
  • XX.write(int) 写一个字节(后八位) pointer向后移动 int i = xx.read(); 读一个字节 pointer向后移动
    查看全部
  • RandomAccessFile raf = new RandomAccessFile(file,"rw"); file: 打开的文件 "rw": 打开文件的模式 有两种 rw和r 注:因为是随机读写文件 所以包含一个指针 打开文件时 指针在开头
    查看全部
  • 打开文件的方式 rw r 方式
    查看全部
  • RandomAccessFile 可以随机访问文件
    查看全部

举报

0/150
提交
取消
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!