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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • RandomAccessFile类 RandomAccessFile类 是java提供的对文件内容的访问,即可以读取文件,也可以写文件。RandomAccessFile类支持随机访问文件,可以访问文件的任意位置 ********RandomAccessFile类实现步骤 (1)java文件的模型 在硬盘上的文件是byte byte byte 存储的,是数据的集合 (2)打开文件 有两种模式“rw”(读写) “r”(只读) RandomAccessFile raf = new RandomAccessFile(File对象,"rw"); 文件指针,打开文件时指针在开头 pointer = 0; (3)写方法 raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 (4)读方法 int b = raf.read()--->读一个字节 (5)关闭流 文件读写完成以后一定要关闭流(Oracle官方说明) *RandomAccessFile 类的方法 raf.getFilePointer();--->获取指针的位置 raf.writeInt(i);//写入一个int raf.seek(0);//移动指针到index的位置 raf.length();返回的是long //一次性读取,把文件中的内容都读取到字节数组中 byte[] buf = new byte[(int)raf.length()] raf.read(buf); //变成字符串,装入数组中进行输出 Arrays.toString(buf); for(byte b : buf){ //以16进制进行输出 Integer.toHexString(b&0xff)+""; } raf.close();
    查看全部
  • 1.IO流:输入流和输出流;(字节流和字符流) 2.字节流:InputStream、OutputStream;InputStream抽象了应用程序读取数据的方式;Outpustream抽象了应用程序写入数据的方式; 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类 RandomAccessFile类 是java提供的对文件内容的访问,即可以读取文件,也可以写文件。RandomAccessFile类支持随机访问文件,可以访问文件的任意位置 ********RandomAccessFile类实现步骤 (1)java文件的模型 在硬盘上的文件是byte byte byte 存储的,是数据的集合 (2)打开文件 有两种模式“rw”(读写) “r”(只读) RandomAccessFile raf = new RandomAccessFile(File对象,"rw"); 文件指针,打开文件时指针在开头 pointer = 0; (3)写方法 raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 (4)读方法 int b = raf.read()--->读一个字节 (5)关闭流 文件读写完成以后一定要关闭流(Oracle官方说明) *RandomAccessFile 类的方法 raf.getFilePointer();--->获取指针的位置 raf.writeInt(i);//写入一个int raf.seek(0);//移动指针到index的位置 raf.length();返回的是long //一次性读取,把文件中的内容都读取到字节数组中 byte[] buf = new byte[(int)raf.length()] raf.read(buf); //变成字符串,装入数组中进行输出 Arrays.toString(buf); for(byte b : buf){ //以16进制进行输出 Integer.toHexString(b&0xff)+""; } raf.close();
    查看全部
  • 1.File dir=new File("文件路径");String[]fileNames=dir.list();返回的是字符串数组,直接子的名称,不包含子目录的内容; 2.File[]files=dir.listFiles();返回的是直接子目录(文件)的抽象;
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

  • 1.java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问; 2. File file=new File("文件的目录"); if(!file.exists())file.mkdir();//文件不存在,直接创建文件; 3.file.isDirectory();判断是否是一个目录,如果是目录返回true,如果不是目录或者目录不存在返回的是false;file.isFile();判断是否是文件
    查看全部
  • 1.在gbk编码中,中文占用两个字节,英文占用一个字节;在utf-8编码中,中文占用三个字节,英文占用一个字节; 2. String s="慕课ABC"; byte[]bytes1=s.getBytes(); Integer.toHexString(b&0xff); 把字节(转换成int)以16进制的方式显示 3.Java是双字节编码utf-16be;中文占两个字节,英文占两个字节; 4.当字节序列是某种编码时,这时候想把字节序列变成字符串,也需要这种编码方式,否则会出现乱码; 5.文本文件就是字节序列;在中文机器上直接创建文本文件,那么该文本只认识ANSI编码方式;
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • File类判断是目录还是文件
    查看全部
  • 当你将字节数组以默认的方式转成字符串String,是以项目默认的编码格式进行的转码,如果以其本身的编码方式不一致就会乱码
    查看全部
    0 采集 收起 来源:文件的编码

    2017-07-28

  • GBK和UTF-8编码中英文字符占用字节数
    查看全部
    0 采集 收起 来源:文件的编码

    2017-07-28

  • String[] filenames = file.list() //返回的是字符串数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API File[] files = file.listFiles(); //返回的是File数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 //递归,遍历出该目录下所有文件信息,包括子目录下的文件 for(File f :files){ if(f.isDirectory){ //递归遍历该目录下的子目录的信息 listDirectory(file); } else{ System.out.pritln(file); } }
    查看全部
    0 采集 收起 来源:遍历目录

    2017-07-27

  • 1、创建File文件对象 param: 文件地址 File file = new File("E:\\javaio"); or new File("E:" + File.sepatator); File.sepatator 不同系统通用分隔符 file.exists() 文件或目录是否存在 file.mkdir() 创建文件夹 file.mkdirs() 创建层级文件夹,不需要父级文件夹存在 file.isDirectory() bool 是否是一个目录 如果是返回时TRUE,不是或者不存在返回FALSE file.isFile() bool 是否是一个文件 File file2 = new File("E:\\java\\test.txt"); File file2 = new File("E:\\java","test.txt"); file2.delete(); 删除文件 file2.createNewFile(); 创建文件 常用的FILE对象的API 打印file对象获得文件目录 等效于 file.getAbsolutePath() file.getName() 如果是文件获得文件名,如果是文件夹过的文件名称 file.getParent() 父目录路径 file.getParentFile() File 父目录对象 file.length();获取文件大小。 file.getFormat();获取文件格式名。 file.createNewFile();创建新文件。
    查看全部
  • String s="慕课ABC"; byte[] bytes1=s.getBytes();//这是把字符串转换成字符数组,转换成的字节序列用的是项目默认的编码 for(byte b: bytes1) System.out.println(Integer.toHexString(b & 0xff)+" ");// & 0xff是为了把前面的24个0去掉只留下后八位//之所以只留八位是因为原始byte型数据就只有八位,去掉因为转换为int型而多余的24位 //toHexString这个函数是把字节(转换成了Int)以16进制的方式显示//totoHexString()是Integer的方法,其默认参数是int型,接收byte型就自动转为int,然后执行转十六进制的操作,转十六进制是为了方便观察其编码方式,即各自有多少字节,如果不转为16进制,二进制数位太多,不便观察 byte[] bytes1=s.getBytes("gbk");//也可以转换成指定的编码 gbk编码: 中文占用两个字节,英文占用一个字节 utf-8编码:中文占用三个字节,英文占用一个字节 java是双字节编码,是utf-16be编码 utf-16be编码:中文占用两个字节,英文占用两个字节 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str1=new String(bytes4);//这时会使用项目默认的编码来转换,可能出现乱码 要使用字节序列的编码来进行转换 String str2=new String(bytes4,"utf-16be"); 文本文件就是字节序列,可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文件只认识ANSI编码(例如直接在电脑中创建文本文件)//此处的原理是本身中文机器可以识别所有编码,但是如果直接在中文机器上创建文件时,默认以ansi编码,因此读取时也自动以此种编码方式读,而你如果不是在中文机器上创建文件时,其会选择合适的编码方式来解读。特别注意一点是“联通”和“联”是特例,其默认编码不是ansi。
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • String s="慕课ABC"; byte[] bytes1=s.getBytes();//这是把字符串转换成字符数组,转换成的字节序列用的是项目默认的编码 for(byte b: bytes1) System.out.println(Integer.toHexString(b & 0xff)+" ");// & 0xff是为了把前面的24个0去掉只留下后八位//之所以只留八位是因为原始byte型数据就只有八位,去掉因为转换为int型而多余的24位 //toHexString这个函数是把字节(转换成了Int)以16进制的方式显示//totoHexString()是Integer的方法,其默认参数是int型,接收byte型就自动转为int,然后执行转十六进制的操作,转十六进制是为了方便观察其编码方式,即各自有多少字节,如果不转为16进制,二进制数位太多,不便观察 byte[] bytes1=s.getBytes("gbk");//也可以转换成指定的编码 gbk编码: 中文占用两个字节,英文占用一个字节 utf-8编码:中文占用三个字节,英文占用一个字节 java是双字节编码,是utf-16be编码 utf-16be编码:中文占用两个字节,英文占用两个字节 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str1=new String(bytes4);//这时会使用项目默认的编码来转换,可能出现乱码 要使用字节序列的编码来进行转换 String str2=new String(bytes4,"utf-16be"); 文本文件就是字节序列,可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文件只认识ANSI编码(例如直接在电脑中创建文本文件)//此处的原理是本身中文机器可以识别所有编码,但是如果直接在中文机器上创建文件时,默认以ansi编码,因此读取时也自动以此种编码方式读,而你如果不是在中文机器上创建文件时,其会选择合适的编码方式来解读。特别注意一点是“联通”和“联”是特例,其默认编码不是ansi。
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • IO字节流
    查看全部
  • IO字节流
    查看全部

举报

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

微信扫码,参与3人拼团

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

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