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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 1.创建File对象:File file=new File(String path);注意:File.seperater();获取系统分隔符,如:”\“ 2.boolean file.exists();是否存在. 3.file.mkdir();或者file.mkdirs();创建目录或多级目录。 4.file.isDirectory()或者file.isFile()判断是否是目录或者是否是文件。 5.file.delete();删除文件或目录。 6.file.createNewFile();创建新文件。 7.file.getName()获取文件名称或目录绝对路径。 8.file.getAbsolutePath()获取绝对路径。 9.file.getParent();获取父级绝对路径。 10.file.getSize();获取文件大小。 11.file.getFormat();获取文件格式名。 file.mkdir()创建目录(一级目录),如果多级目录mkdirs(); getAbsolutePath() 如果file路径,getName返回子路径 如果file为文件,getName返回文件名称 getParent()父路径 File file = new File(路径,记住用双斜杠\\) .........ALT+/可以用于查看功能 file.exists()是否存在 file.delete()删除 isDirectory()是否是一个目录;是返回true,不是或者不存在返回false isFile()是否是文件 File file2 new File(...\\a.txt); File file2 new File(路径,子路径) file2.exists() file2.createNewFile();(捕捉异常) file2.delete(); java.io.File类用于表示文件(目录) 程序员可以通过File类在程序中操作硬盘上的文件和目录 File类只用于表示文件(目录)的信息(名称,大小等),不能用于文件内容的访问
    查看全部
  • gbk编码中文占2个字节,英文占1个,utf-8编码,中文占用3个字节,英文占用一个字节 java是双字节编码utf-16be 该编码中文和英文都是两个字节 当你的字节序列某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件 就是字节序列 可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么给文本文件只认识ansi编码
    查看全部
    0 采集 收起 来源:文件的编码

    2015-05-30

  • java是双字节编码 utf-16be 中文两个字节 英文两个字节 GBK中文占两个字节,英文1个字节;utf-8中文占三个字节,英文占1个字节。 文本文件,就是字节序列。可以是任意编码的字节序列,如果我们是在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码。(联通、联这是一种巧合,他们正好符合了utf-8编码的规则。) Eclipes中什么样子的编码项目就只认识该编码的文字,换一种编码就会出现乱码。 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String(byte[] bytes) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。 String s="慕课ABC"; byte[] bytes1=s.getBytes(); //转换成字节序列用的是项目默认的编码gbk for (byte b:bytes1){ //把字节转换成了int 以16进制的方式显示 system.out.println(Integer.toHexString(b & 0xff)+" "); // c4 bd bf ce 41 42 43 } byte[] bytes2=s.getBytes("gbk"); //手动定义用gbk编码 效果相同 但会有异常 中文两个字节 英文一个 byte[] bytes3-s.getBytes("utf-8"); // e6 85 95 e8 af be 中文三个字节 英文一个 //java是双字节编码 utf-16be 中文两个字节 英文两个字节 byte[] byte4=s.getBytes("utf-16be"); String str1=new String(bytes4); //会出现乱码 当你的字节序列是某种编码时,这个时候把自己序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str2=new String(bytes4,"utf-16be"); //这样就不会出现乱码了
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • FileInputStream文件输入 单字节输入即不用数组。 /** * 批量读取,对大文件而言效率高,也是我们最常用的读文件的方式 * @Inparam fileName * @throws IOException */ public static void printHexByByteArray(String fileName)throws IOException{ FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[8 * 1024]; /*从in中批量读取字节,放入到buf这个字节数组中, * 从第0个位置开始放,最多放buf.length个 * 返回的是读到的字节的个数 */ int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 int j = 1; for(int i = 0; i < bytes;i++){ System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); if(j++%10==0){ System.out.println(); } }
    查看全部
  • 1、byte 类型 8 位,int 类型 32 位,为了避免数据转换错误,通过 & 0xff 将高 24 位清零 2、long time = System.currentTimeMillis() 当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量) 3、is.read() 单字节适合读取 小 文件 is.read(byte[] bytes,int star,int size) 字节数组适合读取 大 文件 读取文件最常用的是批量读取int bytes = fis.read(buf, 0 , buf.length);
    查看全部
  • IO流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序 读取 数据的方式 OutputStream抽象了应用程序 写出 数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 下面的in代表了输入流的对象 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长度的字节到流 5)FileInputStream--->具体实现了在文件上读取数据 //本身继承了InputStream
    查看全部
  • 输出流的方法
    查看全部
  • IO流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序 读取 数据的方式 OutputStream抽象了应用程序 写出 数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 下面的in代表了输入流的对象 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长度的字节到流 5)FileInputStream--->具体实现了在文件上读取数据 //本身继承了InputStream
    查看全部
  • 序列化过程中子父类构造函数问题 一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。
    查看全部
  • write,read,每次这操作一个字节。int型有四个字节,char两个
    查看全部
  • (3)写方法 raf.write(int) ----> 只写一个字节 (后8位) 同时指针指向下一个位置 准备再次写入,由于顺序写入,先写的后八位会变成高八位。因为要写一个占4个字节的Int型的大数字,应先将最高的八位转变成最低八位,再将第二的高八位转成最低八位来依次写入。int i=0x7fffffff;raf.wreit(i>>>24);raf.wreit(i>>>16);raf.wreit(i>>>8); raf.wreit(i) raf.writeInt(i);//可以直接写一个int byte[] gbk = s.getBytes("gbk");//将String s = "中"。将s转化成gbk编码的字节(这里应该是两个字节) (4)读方法 //读文件,必须把指针移到头部 raf.seek(0);//RandomAccessFile类 设置到此文件开头测量到的文件指针偏移量(这里为文件开头),在该位置发生下一个读取或写入操作。 byte [] buf=new byte[(int)raf.length];//表示是定义了一个长度为raf文件大小的定长字节数组 定义大小时只能填入整型int。所以最大就是Integer.MAX_VALUE 2g int b=raf.read(); 读一个字节, read(byte[] b) 将最多 b.length 个数据字节从此文件读入 byte 数组
    查看全部
  • 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() 返回当前目录下的所有子目录和文件的文件数组名称 ======================================== 如果要遍历子目录下的内容就需要构造成File对象做递归操作 //throws IOException 回避了IO的抛出异常 File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象 if (file!=null && files.length > 0){ for(File file:files){ if(file.isDrectory()){ listDirectory(file); }else{ System.out.println(file); } } }
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

  • 1.创建File对象:File file=new File(String path);注意:File.seperater();获取系统分隔符,如:”\“ 2.boolean file.exists();是否存在. 3.file.mkdir();或者file.mkdirs();创建目录或多级目录。 4.file.isDirectory()或者file.isFile()判断是否是目录或者是否是文件。 5.file.delete();删除文件或目录。 6.file.createNewFile();创建新文件。 7.file.getName()获取文件名称或目录绝对路径。 8.file.getAbsolutePath()获取绝对路径。 9.file.getParent();获取父级绝对路径。 10.file.getSize();获取文件大小。 11.file.getFormat();获取文件格式名。 File file=new File("E:\\javaio"); syso -> file.exist(); if (!file.exists()){ file.mkdir(); //如果不存在就建立一个 // file.mkdirs() 创建多级目录 else file.delete(); //存在就删除 syso -> (file.isDirectory()); // 是否是一个目录 syso -> (file.isFile()); // 是否是一个文件 File file2=new File("e:\\javaio\\日记1.txt"); or ("e:\\javaio","日记1.txt") if (!file2.exist()){ file2.createNewFile(); 捕捉异常 syso -> (file) // file.toString() 的内容 syso -> (file.getAboslutePath()); //上同 。
    查看全部
  • file.mkdir()创建目录(一级目录),如果多级目录mkdirs(); getAbsolutePath() 如果file路径,getName返回子路径 如果file为文件,getName返回文件名称 getParent()父路径 File file = new File(路径,记住用双斜杠\\) .........ALT+/可以用于查看功能 file.exists()是否存在 file.delete()删除 isDirectory()是否是一个目录;是返回true,不是或者不存在返回false isFile()是否是文件 File file2 new File(...\\a.txt); File file2 new File(路径,子路径) file2.exists() file2.createNewFile();(捕捉异常) file2.delete(); java.io.File类用于表示文件(目录) 程序员可以通过File类在程序中操作硬盘上的文件和目录 File类只用于表示文件(目录)的信息(名称,大小等),不能用于文件内容的访问
    查看全部

举报

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

微信扫码,参与3人拼团

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

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