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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • listDirecory(目录名对象) 递归
    查看全部
    0 采集 收起 来源:遍历目录

    2015-08-13

  • 把字符串转化为字节数组 String s=""; bytr[] bytes=s.getbytes()/("编码方式"); &0xff 把前面24个0消除 gbk编码中文占两个字节 英文占一个 utf-8编码中中文3个字节 英文1个 getBytes(码) 设置编码方式 java是双字节编码 utf-16 中文占两个 英文也是两个String str=new string(字节序列,“编码方式”) 如果我们在中文机上直接创建文本,改文本文件只认识ansi 但文本文件可以放任何编码文件。
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • FileReader/FileWriter:可以直接写文件名的路径。与InputStreamReader相比坏处:无法指定读取和写出的编码,容易出现乱码。只能读取与项目编码方式相同的文件 FileReader fr = new FileReader("e:\\javaio\\imooc.txt"); //输入流 FileWriter fw = new FileWriter("e:\\javaio\\imooc2.txt");//输出流 字符流:字符流分为输出流(Reader)和输出流(Writer)。操作的是文本文件。 字符处理,一次处理一个字符 字符处理底层还是基本的字节序列 InputStreamReader:完成byte流解析为char流,按照编码解析 FileInputStream in = new FileInputStream("e:\\javaio\\imoocutf8.txt"); //获取字符输入流 InputStreamReader isr = new InputStreamReader(in,"utf-8");//默认项目的编码,操作的时候,要写文件本身的编码格式 OutputStreamWriter:提供char流到byte流,按照编码处理 FileOutputStream out = new FileOutputStream("e:\\javaio\\imoocutf81.txt"); //获取字符输出流 OutputStreamWriter osw = new OutputStreamWriter(out,"utf-8"); FileReader/FileWriter:可以直接写文件名的路径。与InputStreamReader相比坏处:无法指定读取和写出的编码,容易出现乱码。 FileReader fr = new FileReader("e:\\javaio\\imooc.txt"); //输入流 FileWriter fw = new FileWriter("e:\\javaio\\imooc2.txt");//输出流
    查看全部
  • 字符流 (操作的是文本 文本文件) 注意默认的编码方式 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流 按照编码处理
    查看全部
  • BufferedInputStream & BufferedOutputStream 这两个流类为IO提供了带缓冲区的操作,一般打开文件进行细耳 或读取操作时,都会加上缓冲,这种刘模式提供了IP的性能 打个比喻,从应用程序中把输入放入文件,相当于将一缸水导入到另一个缸中,方法有以下几种: FileOutputStream--->write()方法相当于一滴一滴把水“转移”过去 DataOutputStream--->writeXxx()方法会方便一些,相当于一瓢一瓢把水“转移”过去 BufferedOutputStream--->write方法更方便,相当于一瓢一瓢先放入桶中,再从桶中倒入到缸中。 批量读取导入速度最快!
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • RandomAccessFile 对文件内容的访问(读写),File类只是对文件名、文件路径的抽象 打开文件:RandowAccessFile raf = new RandowAccessFile(file,"rw") 写文件:rf.write(); 读文件:rf.read(); 文件读写结束要关闭文件:rf.close(); 文件读取方式 rw r 读写和只读 硬盘文件是以byte方式存储
    查看全部
  • 字符流 (操作的是文本 文本文件) 注意默认的编码方式 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流 按照编码处理
    查看全部
  • 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(); } } } }
    查看全部
  • 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() 返回当前目录下的所有子目录和文件的文件数组名称 ======================================== 如果要遍历子目录下的内容就需要构造成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

  • java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。 创建File对象 File file = new File("E:\\javaio");//注意“\”的转义用"\"。 file.exists();判断文件是否存在,返回boolean类型 file.mkdir();创建文件 file.mkdirs();建多级目录 file.delete();删除目录 file.isDirectory();判断是否是目录,是目录返回true,不是或者不存在都返回false file.isFile();判断是否是一个文件 file.createNewFile();创建文件,会产IO异常 直接打印file其实是调用file.toString()的内容,和打印file.getAbsolutePath()内容相同。 file.getName();获得文件的名字 file.getParent();获得父目录
    查看全部
  • ArrayList可以找到这两个方法.自己做序列化,反序列化
    查看全部
  • 用transient来自己做序列化
    查看全部
  • private transient int i; //该元素不会进行jvm默认的序列化 这样在反序列化(ObjectInputStream)就不会取到i的值,变成了默认值. 网络传输的时候如果不需要传输的话,可以节省流量.(如果这个字段很大?)
    查看全部

举报

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

微信扫码,参与3人拼团

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

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