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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • public class IOUtil { /* * 读取指定文件内容,按照16进制输出到控制台 * 并且每输出10个byte换行 */ public static void printHex(String FileName)throws IOException{ // 把文件作为字节流进行读操作 FileInputStream in = new FileInputStream(FileName); int b; int i =1; while((b = in.read())!=-1){ // 将整形b转换为16进制表示的字符串 if(b <= 0xf){ // 单位数前面补0 System.out.println("0"); } System.out.println(Integer.toHexString(b) + " "); if(i++%10==0){ System.out.println(); } } in.close(); } public static void printHexByByteArray(String fileName)throws IOException{ FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; //从in中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 int j =0; for(int i = 0;i < bytes;i++){ if(buf[i] <= 0xf){ System.out.print("0"); } System.out.print(Integer.toHexString(buf[i]) + " "); if(j++%10==0){ System.out.println(); } } } }
    查看全部
  • package com.imooc.io; import java.io.IOException; public class IOUtilTest1 { public static void main(String[] args) { try { IOUtil.printHex("e:\\java\\说明.txt"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
    查看全部
  • package com.imooc.io; import java.io.FileInputStream; import java.io.IOException; public class IOUtil { /* * 读取指定文件内容,按照16进制输出到控制台 * 并且每输出10个byte换行 */ public static void printHex(String FileName)throws IOException{ // 把文件作为字节流进行读操作 FileInputStream in = new FileInputStream(FileName); int b; int i =1; while((b = in.read())!=-1){ // 将整形b转换为16进制表示的字符串 if(b <= 0xf){ // 单位数前面补0 System.out.println("0"); } System.out.println(Integer.toHexString(b) + " "); if(i++%10==0){ System.out.println(); } } in.close(); } }
    查看全部
  • package com.imooc.io; import java.io.IOException; public class IOUtilTest1 { public static void main(String[] args) { try { IOUtil.printHex("e:\\java\\说明.txt"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 运行结果: d3 c3 c0 b4 d7 a2 b2 e1 b5 c4 b9 a4 be df
    查看全部
  • package com.imooc.io; import java.io.FileInputStream; import java.io.IOException; public class IOUtil { /* * 读取指定文件内容,按照16进制输出到控制台 * 并且每输出10个byte换行 */ public static void printHex(String FileName)throws IOException{ // 把文件作为字节流进行读操作 FileInputStream in = new FileInputStream(FileName); int b; int i =1; while((b = in.read())!=-1){ // 将整形b转换为16进制表示的字符串 System.out.println(Integer.toHexString(b) + " "); if(i++%10==0){ System.out.println(); } } in.close(); } }
    查看全部
  • IO(输入流、输出流) 字节流、字符流 1、字节流 1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 int b = int.read();读取一个字节无符号填充到int低八位。-1是EOF int.read(byte[] buf) // 读取数组填充到字节数组buf int.read(byte[] buf,int start,int size) //读取数据到字节数组buf,从buf的start位置开始存放 4)输出流基本方法 out.write(int b) 写出一个byte到流,b的低八位 int.read(byte[] buf)将buf字节数组都写入到流 int.read(byte[] buf,int start,int size) // 字节数组buf从start位置开始写size长度的字节到流 5)FileInputStream-->具体实现了在文件上读取数据
    查看全部
  • IO(输入流、输出流) 字节流、字符流 1、字节流 1)IntputStream、OutputStream IntputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 int b = int.read();读取一个字节无符号填充到int低八位。-1是EOF int.read(byte[] buf) // 读取数组填充到字节数组buf int.read(byte[] buf,int start,int size) //读取数据到字节数组buf,从buf的start位置开始存放 4)输出流基本方法 out.write(int b) 写出一个byte到流,b的低八位 int.read(byte[] buf)将buf字节数组都写入到流 int.read(byte[] buf,int start,int size) // 字节数组buf从start位置开始写size长度的字节到流 5)FileIntputStream-->具体实现了在文件上读取数据
    查看全部
  • package com.imooc.io; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.lang.reflect.Array; import java.util.Arrays; public class RafDemo { public static void main(String[] args)throws IOException { File demo = new File("demo"); if(!demo.exists()) demo.mkdir(); File file = new File(demo,"raf.dat"); if(!file.exists()) file.createNewFile(); RandomAccessFile raf = new RandomAccessFile(file,"rw"); // 指针的位置 System.out.println(raf.getFilePointer()); raf.write('A'); // 只写了一个字节 System.out.println(raf.getFilePointer()); raf.write('B'); int i = 0x7fffffff; // 用write方法每次只能写一个字节,如果要把i写进去就得写4次 raf.write(i >>> 24);//高8位 raf.write(i >>> 16); raf.write(i >>> 8); raf.write(i); System.out.println(raf.getFilePointer()); //可以直接写一个int raf.writeInt(i);
    查看全部
  • String s = "中"; byte[] gbk = s.getBytes("gbk"); raf.write(gbk); System.out.println(raf.length()); //读文件,必须把指针移到头部 raf.seek(0); //一次性读取,把文件中的内容都读到字节数组中 byte[] buf = new byte[(int)raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); //String s1 = new String(buf,"gbk"); //System.out.println(s1); for (byte b : buf) { System.out.println(Integer.toHexString(b & 0xff)); } } } 运行结果: 0 1 6 12 [65, 66, 127, -1, -1, -1, 127, -1, -1, -1, -42, -48] 41 42 7f ff ff ff 7f ff ff ff d6 d0
    查看全部
  • package com.imooc.io; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; public class RafDemo { public static void main(String[] args)throws IOException { File demo = new File("demo"); if(!demo.exists()) demo.mkdir(); File file = new File(demo,"raf.dat"); if(!file.exists()) file.createNewFile(); RandomAccessFile raf = new RandomAccessFile(file,"rw"); // 指针的位置 System.out.println(raf.getFilePointer()); } } 运行结果: 0
    查看全部
  • import java.io.File; import java.io.IOException; // 列出file类的一些常用操作,不如过滤、遍历等操作 public class FileUtils { public static void listDirectory(File dir) throws IOException{ // exists()方法用于判断文件或目录是否存在 if(!dir.exists()){ throw new IllegalArgumentException("目录:" + dir + "不存在"); } // isDirectory()方法用于判断File类的对象是否是目录 if(!dir.isDirectory()){ throw new IllegalArgumentException(dir + "不是目录"); } // list方法用于列出当前目录下的子目录和文件 /*String[] filenames = dir.list(); // 返回的是字符串数组 直接子的名称 不包含子目录下的内容 for (String string : filenames) { System.out.println(dir + ":\\" + string); }*/ // 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了返回File对象的API File[] files = dir.listFiles(); // 返回的是直接子目录(文件)的抽象 //for (File file : files) { //System.out.println(file); if(files!=null && files.length > 0){ for (File file : files) { if(file.isDirectory()){ // 递归 listDirectory(file); }else{ System.out.println(file); } } } } }
    查看全部
    6 采集 收起 来源:遍历目录

    2018-03-22

  • 运行结果: E:\java\.accelerate E:\java\1.png E:\java\2.png E:\java\formvalidator4.1.3.rar E:\java\JavaScriptDOM编程艺术 E:\java\JAVA基础教程 E:\java\Java编程思想.pdf E:\java\Java语言程序设计-进阶篇(原书第8版).pdf E:\java\jdk E:\java\jquery mobile快速入门.pdf E:\java\Preview(1).jpg E:\java\Preview.jpg E:\java\unix系统编程.pdf E:\java\vi.pdf E:\java\大学资料 E:\java\开发的项目源码和笔记 E:\java\操作系统 E:\java\操作系统.zip E:\java\新建 Microsoft Office Word 97-2003 文档.doc E:\java\百度云盘截图 E:\java\笔记.zip E:\java\第三阶段要讲的内容.jpg E:\java\说明.txt E:\java\资料
    查看全部
    0 采集 收起 来源:遍历目录

    2017-02-01

  • package com.imooc.io; import java.io.File; import java.io.IOException; // 列出file类的一些常用操作,不如过滤、遍历等操作 public class FileUtils { public static void listDirectory(File dir) throws IOException{ // exists()方法用于判断文件或目录是否存在 if(!dir.exists()){ throw new IllegalArgumentException("目录:" + dir + "不存在"); } // isDirectory()方法用于判断File类的对象是否是目录 if(!dir.isDirectory()){ throw new IllegalArgumentException(dir + "不是目录"); } // list方法用于列出当前目录下的子目录和文件 /*String[] filenames = dir.list(); // 返回的是字符串数组 直接子的名称 不包含子目录下的内容 for (String string : filenames) { System.out.println(dir + ":\\" + string); }*/ // 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了返回File对象的API File[] files = dir.listFiles(); // 返回的是直接子目录(文件)的抽象 for (File file : files) { System.out.println(file); } } }
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

  • 因为byte是1个字节,int是4个字节,转换的时候就会多了3个字节,也就是3*8=24位,多了24个0. 这个时候的输出结果为: ffffffe6 ffffff85 ffffff95 ffffffe8 ffffffaf ffffffbe 41 42 43 &0xff的目的在于去掉前面24个0,,只留下后八位。 输出结果变成: e6 85 95 e8 af be 41 42 43
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • E:\java:\.accelerate E:\java:\1.png E:\java:\2.png E:\java:\formvalidator4.1.3.rar E:\java:\JavaScriptDOM编程艺术 E:\java:\JAVA基础教程 E:\java:\Java编程思想.pdf E:\java:\Java语言程序设计-进阶篇(原书第8版).pdf E:\java:\jdk E:\java:\jquery mobile快速入门.pdf E:\java:\Preview(1).jpg E:\java:\Preview.jpg E:\java:\unix系统编程.pdf E:\java:\vi.pdf E:\java:\大学资料 E:\java:\开发的项目源码和笔记 E:\java:\操作系统 E:\java:\操作系统.zip E:\java:\新建 Microsoft Office Word 97-2003 文档.doc E:\java:\百度云盘截图 E:\java:\笔记.zip E:\java:\第三阶段要讲的内容.jpg E:\java:\说明.txt E:\java:\资料
    查看全部
    0 采集 收起 来源:遍历目录

    2017-02-01

举报

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

微信扫码,参与3人拼团

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

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