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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • utf-8编码中中文占用3个字节,英文占用1个字节 gbk编码中文占用2个字节,英文占用1个字节 Java采用双字节编码,utf-16be编码中文占用2个字节,英文占用2个字节
    查看全部
    0 采集 收起 来源:文件的编码

    2016-05-23

  • BufferedInputStream&BufferedOutputStream 提供了带缓存区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能 从应用程序中把输入放入文件,相当于将一罐水倒入到另外一个罐中: FileOutputStream-->write()方法相当于一滴一滴地把水“转移”过去 DataOutputStream-->writeXxx()方法会方便一些,相当于一瓢一瓢把水“转移” BuffereOutputStream-->write()方法更方便,相当于一瓢一瓢先放入 桶中,在从桶中倒入到另外一个罐中
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • mark
    查看全部
    0 采集 收起 来源:字节缓冲流

    2016-05-23

  • readInt readLong 方法都是对FileInputStream方法的包装 DataOutputStream/DataInputStream 对“流”功能的扩展,可以更加方便的读取 int,long, 字符等类型数据 DataOutputStream:使用FileOutputStream构造出来,通过包装FileOutput,可以调用FileOutput类的write方法来构造新的更方便的写方法: new DataOutputStream(new FileOutptStream(file)) wrieteUTF()采用utf-8编码写出字符串 用utf-16be写出字符串,或字符串数组 写完之后一定要关闭流 数据输入输出流: DataInputStream、DataOutputStream 是对“流”功能的扩展,方便读写 DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeLong(10l);字母l dos.writeDouble(10.5); //采用utf-8编码写出 dos.writeUTF("中国"); //采用utf-16be编码写出 dos.writeChars("中国");
    查看全部
  • /** * 文件拷贝,字节批量读取 * @param srcFile * @param destFile * @throws IOException * * JAVA的throw和throws區別: * http://zhidao.baidu.com/link?url=cOoyefusSFJRvXFuNK3vAVS_mGcE3jgWSy8CiwZk5y-N8Fa-m_cwRrNVEneXKkwMOTYHz8MIIS13gAz91Y4vZ_ */ public static void copyFile(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(srcFile+"不是文件"); } FileInputStream in = new FileInputStream(srcFile); FileOutputStream out = new FileOutputStream(destFile); byte[] buf = new byte[8*1024]; int b ; while((b = in.read(buf,0,buf.length))!=-1){ //講buf數組裡的內容讀入到該輸出流中(out) out.write(buf,0,b); out.flush();//最好加上 } in.close(); out.close(); }
    查看全部
  • mark
    查看全部
  • mark
    查看全部
  • mark
    查看全部
  • mark
    查看全部
  • mark
    查看全部
  • 注意write方法每次只能写入一个字节: raf.write('A');//此时指针后移 System.out.println(raf.getFilePointer());此时输出为1 这时只写入了一个字节而不是完整的char,只是因为后八位刚好能够表示A raf.write('B'); 若要写入一个整数i则需要写四次 int i=0x7fffffff; raf.write(i>>>24);//高八位 raf.write(i>>>16); raf.write(i>>>8); raf.write(i);//写入最低的八位 System.out.println(raf.getFilePointer()); 此时打印输出6 可以直接写入一个int raf.writeInt(i); String s="中"; byte[] gbk=s.getBytes("gbk"); raf.write(gbk); System.out.println(raf.length(0); 此时打印输出12(中文占俩字节) 读文件,必须把指针移到头部 raf.seek(0); //一次性读取: byte[] buf= new byte[(int)raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); 此时打印输出 [65,66,127,-1,-1,-1,127,-1,-1,-1,-42,-48] 开头的65,66是正确的AB,因为后八位已经能表示AB了 也可按字符串输出 String s1=new String(buf); System.out.println(s1,"gbk"); 打印输出AB????? 因为“中”的前后都有字节,只有定位到中的两个字节,才能读出他 最后要加上raf.close();
    查看全部
  • *********************File遍历目录****************************** File的过滤,遍历等操作 列出指定目录下的(包括子目录)的所有文件 File file = new File(); exists() 方法用于判断文件或目录是否存在 isDirectory()方法判断File类的对象是否是目录 throw new IllegalArgumentException();抛出异常 String[] filenames = file.list() //返回的是字符串数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 //递归 for(String string : filenames){//将filenames数组中的值,循环赋值给string,直到filenames为空时,结束循环 System.out.println(string); } //如果要遍历目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API File[] files = file.listFiles(); //返回的是直接子目录(文件)的抽象 //递归,遍历出该目录下所有文件信息,包括子目录下的文件 for(File f :files){ if(f.isDirectory){ //递归遍历该目录下的子目录的信息 listDirectory(file); } else{ System.out.pritln(file); } }
    查看全部
    0 采集 收起 来源:遍历目录

    2016-05-23

  • java.io.File类用于表示文件的路径,不能访问文件内容。 1. 创建File对象: File file = new File("/home/visen"); File file = new File("/home/visen","test.txt"); File file1 = new File("e:"+File.separator()+"filename);//自动创建分隔符 2. 判断目录是否存在:`file.exists();` 3. 创建目录: file.mkdir();//单级 file.mkdirs();//多级 4. 创建文件:`file.createNewFile();` 5. 删除目录或文件:`file.delete();` 6. 判断是否是一个目录:`file.isDirectory();` 7. 判断是否是一个文件:`file.isFile();` 8. 获得绝对路径:`file.getAbsolutePath();` 9. 获得目录或文件名称:`file.getName();` 10. 得到父目录:`file.getParent();` 11. 列出目录下的内容: `String[] dirContents = file.list();` 12. 获取系统分隔符:`File.seperater();`
    查看全部
  • RandomAccessFile提供对文件内容的访问,既可以读文件,也可以写文件。支持随机访问文件,可以访问文件的任意位置。 java文件模型,在硬盘上的文件是byte数组形式存储的,是数据的集合。 打开文件有两种模式“rw”读写模式,“r”只读模式 RandomAccessFile.write()方法只写一个字节,后8位
    查看全部
  • gbk编码:中文占用两个字节,英文占用一个字节 utf-8编码:中文占用三个字节,英文占用一个字节 utf-16be编码:中文占用两个字节,英文占用两个字节
    查看全部
    0 采集 收起 来源:文件的编码

    2016-05-23

举报

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

微信扫码,参与3人拼团

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

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