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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • gbk编码中文占2个字节,英文占1个字节, utf-8编码,中文占用3个字节,英文占用1个字节 java是双字节编码utf-16be 该编码中文和英文都是2个字节 当字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件可以是任意编码的字节序列 如果在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码
    查看全部
    0 采集 收起 来源:文件的编码

    2015-07-09

  • 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件,就是字节序列,可以是任意编码的字节序列,如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码,而粘贴过来的全都认识
    查看全部
    0 采集 收起 来源:文件的编码

    2015-07-09

  • IO流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 int b = in.read();读取一个字节无符号填充到int低八位.-1是 EOF in.read(byte[] buf) in.read(byte[] buf,int start,int size) 4)输出流基本方法 out.write(int b) 写出一个byte到流,b的低8位 out.write(byte[] buf)将buf字节数组都写入到流 out.write(byte[] buf,int start,int size) 5)FileInputStream--->具体实现了在文件上读取数据 6)FileOutputStream 实现了向文件中写出byte数据的方法
    查看全部
  • JAVA I/O输入输出流
    查看全部
    0 采集 收起 来源:文件的编码

    2015-07-09

  • java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件类型的内容的访问。 了解构造函数的情况。 file.exists()判断文件是否存在 file.mkdir();创建文件 多级目录创建,mkdirs() file.delete();删除文件 file.idDirectory();判断是否是目录,是目录返回true,不是或者不存在都返回false file.isFile();判断是否是文件 file.createNewFile();创建文件 File file=new File("D:/javaio/日记.txt");等价于File file=new File("D:/javaio","日记.txt"); 常用的file对象API file //file.toString()的内容 file.getAbsolutePath(); getName(); getParent();
    查看全部
  • byte[] tytes=s.getBytes();//转换成字节序列用的是项目默认的编码gbk gbk编码,中文占两个字节,英文占用一个字节 在utf-8中,中文占用两个字节,英文占用一个字节 Java是双字节编码,是utf-16be编码 utf-16be,中文占用两个字节,英文也是两个字节 当你的字节序列是某种编码时,这个时候想要把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件,就是字节序列,可以是任意编码的字节序列。如果我们在中文机器上直接创建文本文件,这个文本文件只认识ansi编码
    查看全部
    0 采集 收起 来源:文件的编码

    2015-07-08

  • 序列化过程中子父类构造函数问题 一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。
    查看全部
  • 1.一个实现serializable接口的类中用transient修饰一个属性,这该属性不会进行jvm默认的序列化,在网络传输中对象不必要的属性可以用transient修饰节省流量加快效率 2.被transient修饰的属性也可以自己完成序列化,通过以下方法 private void writeObject(java.io.ObjectOutputStream s)throws java.io.IOException { s.defaultWriteObject();// 把jvm能默认序列化的元素进行序列化操作 s.writeInt(stuage);//自己完成序列化操作 } private void readObject(java.io.ObjectInputStream s)throws java.io.IOException, ClassNotFoundException{ s.defaultReadObject();//把jvm能默认反序列化的元素进行反序列化操作 this.stuage = s.readInt();//自己完成stuage的反序列操作 } ArrayList最核心的容器Object[] elementData使用了transient修饰,但是在writeObject自己实现对elementData数组的序列化。只序列化实际有的元素,对于数组中空的元素不进行序列化。
    查看全部
  • gbk编码中文占2个字节,英文占1个字节, utf-8编码,中文占用3个字节,英文占用1个字节 java是双字节编码utf-16be 该编码中文和英文都是2个字节 当字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件可以是任意编码的字节序列 如果在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码
    查看全部
    0 采集 收起 来源:文件的编码

    2015-07-08

  • 对象的序列化,反序列化 1)对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2)序列化流(ObjectOutputStream),是过滤流----writeObject 反序列化流(ObjectInputStream)---readObject 3)序列化接口(Serializable) 对象必须实现序列化接口 ,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准
    查看全部
  • 字符流的过滤器 BufferedReader ---->readLine 一次读一行 BufferedWriter/PrintWriter ---->写一行 BufferedReader.readLine()方法一次读一行,但不能识别换行,要手动操作 BufferedWriter.writeLine(String s)之后要用.newLine()进行换行操作 PrintWriter.println(String s)自动换行,不加ln则不会自动换行 PrintWriter pw = new PrintWriter("文件绝对地址");相对地址这是默认在项目中 PrintWriter pw = new PrintWriter(outputStream.bollean autoFlush);是否自动刷新缓冲区,是的话后面代码中不用加.flush()方法
    查看全部
  • FileReader/FileWriter:可以直接写文件名的路径。与InputStreamReader相比坏处:无法指定读取和写出的编码,容易出现乱码。 FileReader fr = new FileReader("e:\\javaio\\imooc.txt"); //输入流 FileWriter fw = new FileWriter("e:\\javaio\\imooc2.txt",true);//输出流,写true就是追加,否则就是重新创建 出现乱码是必须改变项目的编码与文件一致或者使用inputstreamreader/outputstreamwriter
    查看全部
  • 字符流 (操作的是文本 文本文件) 注意默认的编码方式 1)编码问题 2)认识文本和文本文件 java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是byte byte byte 的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化byte的存储 3)字符流(Reader Writer)-->操作的都是文本文件!!! 字符的处理,一次处理一个字符 字符的底层依然是基本的字节序列 4)InputStreamreader 完成byte流解析成char流 按照编码解析 OutputStreamWrite 提供char流到byte流 按照编码处理 5)InpurStreamReader isr = new InputStreamReader(in);//默认项目编码,要写文件本身的编码否则会乱码 InputStreamReader isr = new InputStreamReader(in,"gbk");//使用gbk编码解析 OutputStreamWriter osw = new OutputStreamWriter(FileOutputStream out,编码)//编码不写默认为项目编码,一般要写文件out相同的编码 字符流一定要注意编码问题
    查看全部
  • 机器认识任何字节序列,
    查看全部
    0 采集 收起 来源:文件的编码

    2015-07-08

  • BufferedInputStream&BufferedOutputStream 这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入 或读取操作时,都会加上缓冲,这种流模式提高了IO的性能 从应用程序中把输入放入文件,相当于将一缸水倒入到另一个缸中: FileOutputStream--->write()方法相当于一滴一滴地把水“转移”过去 DataOutputStream-->writeXxx()方法会方便一些,相当于一瓢一瓢把水“转移”过去 BufferedOutputStream--->write方法更方便,相当于一飘一瓢先放入桶中,再从桶中倒入到另一个缸中,性能提高了 带缓冲的文件拷贝速度快!用于大型文件!但是必须刷新缓冲区用.flush()方法 可以用System.currentTimeMillis()方法获取当前时间,毫秒为单位,用于比较时间效率 带缓冲的效率大于单字节读取,但是批量字节读取效率最高
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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