为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
文件传输基础——Java IO流_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

Cedar
难度入门
时长 2小时 0分
  • InputStream OutputStream InputStream 抽象了应用程序读取数据的方式 OutputStream 抽象了应用程序写出数据的方式 EOF=End 读到-1就读到结尾 输入流基本方法 int b=in.read();读取一个字节无符号填充到int的低八位,-1是EOF in.read(byte[] buf);读取数据填充到字节数组buf、 in.read(byte[] buf,int start,int size) 输出流基本方法 out.write(int b) 昔日出一个byte到流,b的低八位 out.write(byte][] buf) 将buf字节数组都写入到流 out.write(byte[] buf,int start,int size); FileInputStream 具体实现了文件上读取数据
    查看全部
  • RandomAccessFile : java提供的对文件内容的访问 既可以读文件 也可以写文件 支持随机访问文件 可以访问文件的任意位置 (1)java文件模型 : 在硬盘上的文件是byte byte byte 存储的 是数据的集合 (2)打开文件 有两种模式 rw 读写 r只读 RandomAccessFile raf=new RandomeAccessFile(file,"rw"); 文件指针, pointer=0; (3)写方法 raf.write(int) ----> 只写一个字节 (后8位) 同时指针指向下一个位置 准备再次写入 (4)读方法 int b=raf.read(); 读一个字节 (5)文件读写完成后一定要关闭 (oracle官方说明) raf.getFilePointer()获取当前指针位置 raf.length()获取文件长度 raf.seek()把指针指定到某一位置
    查看全部
  • public String[] list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 exists()方法用于判断文件或目录是否存在 file.list()返回的是字符串数组,不包含子目录下的内容 file.listFiles()返回当前目录下的所有子目录和文件
    查看全部
    0 采集 收起 来源:遍历目录

    2015-08-03

  • 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();
    查看全部
  • java是双字节编码(utf-16be): 中文两个字节 英文两个字节; GBK:中文占两个字节,英文1个字节; utf-8:中文占三个字节,英文占1个字节。 中文系统下:ANSI编码代表GBK编码。 文本文件就是字节序列, 可以是任意编码的字节序列
    查看全部
    0 采集 收起 来源:文件的编码

    2015-08-03

  • 注意:在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;对有效元素序列化,提高性能。transient:该元素不会进行jvm默认的序列话,也可以自己完成这个元素的序列化 s.writeInt或者是writeObject都行 transient 关键字:被transient修饰的元素,该元素不会进行jvm默认的序列化,但可以自己完成这个元素的序列化 注意:(1)在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;对有效元素序列化,提高性能。 (2)可以使用writeObject自己完成这个元素的序列化。ArrayList就是用了此方法进行了优化操作。ArrayList最核心的容器Object[] elementData使用了transient修饰,但是在writeObject自己实现对elementData数组的序列化。只对数组中有效元素进行序列化。readObject与之类似。 private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException private void readObject(java.io.ObjectInputStream s) throws java.io.IOException,ClassNotFoundException
    查看全部
  • 对象序列化和反序列化 序列化:就是将object转换成byte,反之,就是反序列化 2、序列化流(ObjectOutputStream),是过滤流 反序列化流(ObjectInputStream)-->readObject 3、序列化接口(Serializable)--》writeObject 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准 ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file)); Student stu = new Student("1001","张三",20); oos.writeObject(stu); oos.flush(); oos.close(); //反序列化 ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file)); Student stu = (Student)ois.readObject(); System.out.println(stu); ois.close();
    查看全部
  • 直接创建txt为ansi编码
    查看全部
    0 采集 收起 来源:文件的编码

    2015-08-02

  • DataOutputStream/DataInputStream 对“流”功能的扩展,可以更加方便的读取 int,long, 字符等类型数据 DataOutputStream:使用FileOutputStream构造出来,通过包装FileOutput,可以调用FileOutput类的write方法来构造新的更方便的写方法: new DataOutputStream(new FileOutptStream(file))
    查看全部
  • 输入流
    查看全部
  • in.read() 单字节适合读取 小 文件 in.read(byte[] bytes,int star,int size) 字节数组适合读取 大 文件 读取文件最常用的是批量读取int bytes = file.read(buf, 0 , buf.length);
    查看全部
  • public static void prinHexByByteArray(String fileName)throws IOException{ FileInputStram in = new FileInputStream(fileName); byte[] bytes = new byte[20*1024]; //从in中批量读取字节,放入到buf这个字节数组中 //从第0个位置开始放,最多放buf.length个 //返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 int j=1; for(int i=0; i<bytes; i++){ if(buf[i]<=0xf){ System.out.print("0"); } System.out.print(Integer.toHexString(buf[i]+" ")); if(j++%==0){ System.out.println(); } } //使用while实现 int bytes=0; int j=1; while((bytes = in.read(buf,0,buf.length))!=-1){ for(int i=0;i<bytes;i++){ System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); if(j++%10==0){ System.out.println(); } } } }
    查看全部
  • 文件的异常有 IOException 抛出的异常 IllegalArgumentException(); file.list() 返回当前目录下的子目录和文件的字符串数组名称 file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称 public static void listDirectory(File dir) throws IOException{ if(!dir.exist()){ throw new IllegalArgumentException("目录:"+dir+"不存在"); } if (!dir.isDirectory) { throw new IllegalArgumentException(dir+"不是目录"); } String[] filenames=dir.list(); //返回的是字符串数组 直接子的名称不包含子目录下的内容 for (String string:filenames){ system.out.println(dir+"\\"+string); } //如果要遍历子目录下的内容 需要构造File对象做递归操作, File提供了直接返回File对象的API File[] files=dir.listFiles(); //返回的是直接目录(文件)的抽象 foreach后仍为子目录 if (files!=null && files.length>0) { //说明有子目录存在 for(File file:files){ if (file.isDirectory()){ listDirectory(file); } else { system.out.println(file); } main FileUtils.listDirectory(new File("e:\\example")); //打印出目录下所有的文件名 没有子目录 [ 收起全文 ]
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

  • File file = new File("E:\\javaio");//注意“\”的转义用"\"。 file.exists()判断文件是否存在。如果存在返回true否则返回false返回false创建文件file.mkdir(); file.delete(),删除文件 file.isdirectory();判断是否是目录 file.isfile();判断是否是文件
    查看全部
  • java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称,大小等),不能用于文件内容的访问
    查看全部

举报

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

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