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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 1.FileReader fr=new FileReader("文件路径"); FileWriter fw=new FileWriter("文件路径"); char []buffer=new char[2048]; int c while((c=fr.read())!=-1) { fw.write(buffer,0,c); fw.flush(); } fr.close(); fw.close();
    查看全部
  • 字符流 1.编码问题 2.认识文本和文本文件 java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是byte byte byte...的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结构 3.字符流(Reader,Writer):---->操作文本文件 字符处理,一次处理一个字符,字符的底层任然是基本的字节序列;字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理
    查看全部
  • 1.BufferedInputStream和BufferedOutputStream:这两个流类为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲区,这种流模式 提高了IO的性能; 从应用程序中把输入放入文件,相当于将一缸水倒入另一缸水中 FileOutpuStream---->write()方法相当于一滴一滴地把水转移过去 DataOutputStream---->writexxx()方法会方便一些,相当于一瓢一瓢把水转移过去 BufferedOutputStream---->write()方法更方便,相当于一瓢一瓢先放入桶中,再从桶中倒入到缸中,性能更好; 2.BufferedInputStream bis=new BufferedInputStream(new FileInputStream(srcFile)); BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(desFile)); int c=0; while((c=bis.read())!=-1) { bos.write(c); bos.flush();//必须刷新缓冲区,不然写入不进去 } bis.close(); bos.close();
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • 1.DataOutputStream/DataInputStream:对"流"的一种扩展,可以更加方便的处理int\long,字符等类型数据;DataOutputStream中有writeInt()\writeDouble()\writeUTF()等方法 2.String file="文件路径"; DataOutputStream dos=new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeDouble(10.4); dos.writeLong(10l); //采用utf-8编码写出 dos.writeUTF("中国"); //采用uft-16be编码写出 dos.writeChars("中国"); dos.close();
    查看全部
  • public static void capyFile(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new ILLeqalArqumentException("文件:"+srcFile+"不存在"); } throw new ILLeqalArqumentException("文件:"+srcFile+"不是文件"); if(!srcFile.isFile()){ } FileInputStream in=new FileInputStream(srcFile); FileOutStream out=new FileOutStream(destFile); byte[] buf=new byte[8*1024]; int b; while((b=in.read(buf,0,buf.length))!=-1){ out.write(buf,0,b); out.flush(); } in.close(); out.close(0; }
    查看全部
  • 字符流经常将BufferedReader和PrintWriter配合使用。而且BufferedReader有一个readLine读一行的操作很方便
    查看全部
  • 字符流之过滤器: BufferedReader、BufferWriter、PrintWriter; 可以使用BufferedReader的readLine()方法一次读入一行,为字符串形式,用null判断是否读到结尾。使用BufferedWriter的write()方法或PrintWriter的print()方法写入文件,每次写入后需要调用flush()方法清空缓冲区。在写入时需要注意写入的数据中会丢失换行,可以在每次写入后调用BufferedReader的newLine()方法或改用PrintWriter的println()方法补充换行。 通常将PrintWriter配合BufferedWriter使用。(PrintWriter的构造方法,及使用方式更为简单)。
    查看全部
  • 字符流之文件读写流的使用: FileReader/FileWriter 使用字符数组作为缓冲区读写文件,要格外注意文件的编码方式,这种流会默认以项目编码来读写文件,可能导致编码与项目编码不同的文本文件产生乱码,而且这种流在使用时不能指定编码,所以当操作不同编码的文件时应当回归到字符流来操作。
    查看全部
  • ava中文本、文件、文本文件的实质解析: 文件:byte byte byte的数据序列 文本:是16位无符号整数(char),是字符的unicode编码(双字节编码) 文本文件:是文本序列按照某种编码方案(utf-8、utf-16be、gbk)序列化为byte的存储结果。 字符流解析: InputStreamReader 完成byte流解析为char流,按照编码解析。 OutputStreamWriter 提供char流处理为byte流,按照编码处理。
    查看全部
  • BufferedInputStream、BufferedOutputStream使用缓冲区来进行数据写入写出操作,提高性能。对比其他方式输入输出: FileInputStream/FileOutputStream 每次一个字节的读写 DataInputStream/DataOutputStream 每次一个类型数据的读写。如:一次写入一个int类型的数据,相当于一次写入四个字节。 BufferedInputStream/BufferedOutputStream 每次读写一个缓冲区大小的数据。每次写入时必须调用实例的flush()方法来清空缓冲区。 读写效率对比:使用字节数组作为缓冲的流 > 使用原生缓冲的流 > 不使用缓冲的流
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • DataOutputStream/DataInputStream 对"流"功能的扩展,可以更加方面的读取int,long,字符等类型数据 DataOutputStream writeInt()/writeDouble()/writeUTF() 其新建对象为嵌套创建,例: String file = "xxx"; DataInputStream dis = new DataInputStream(new FileInputStream(file)); DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); 而且writeUTF()和readUTF()都是utf-8编码格式 writeChars()和readChars()都是utf-16be编码格式
    查看全部
  • public static void capyFile(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new ILLeqalArqumentException("文件:"+srcFile+"不存在"); } throw new ILLeqalArqumentException("文件:"+srcFile+"不是文件"); if(!srcFile.isFile()){ } FileInputStream in=new FileInputStream(srcFile); FileOutStream out=new FileOutStream(destFile); byte[] buf=new byte[8*1024]; int b; while((b=in.read(buf,0,buf.length))!=-1){ out.write(buf,0,b); out.flush(); } in.close(); out.close(0; }
    查看全部
  • FileOutputStream fop = new FileOutputStream(File file); //创建文件写入操作,如果不存在,系统自动创建文件 FileInputStream fip = new FileInputStream(File file); //创建文件写出操作 文件复制时,需要创建源文件和目的文件,通过读取源文件的内容向目的文件中写入 可使用数组进行文件的存储如: byte[] buf = new byte[可写入长度//1*1024];功能类似转换器,能提高效率 对于大文件 可使用while循环 例: FileInputStream fip = new FileInputStream(文件路径); byte[] buf = new byte[20*1024]; int b = 0; while((b = fip.read(buf,0,buf.length))!=-1){ for(int i = 0; i < b;i++){ System.out.println(Integer.toHexString(buf &0xff) + " "); } } 其中 oxff是去掉字节前面的24位0操作
    查看全部
  • FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; //从in中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 in.read(byet[],int,int)返回的是读到的字节的个数。是一个int 返回值。 读文件内容 常用的 标准的 方式。 FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; int byetes = 0; int j = 1; while((bytes = in.read(buf,0,buf.length))!=-1){ for(int i = 0; i < bytes; i++){ System.out.print(Integer.toHexSting(buf[i] & 0xff)+ " "); if( j++ % 10 == 0){ System.out.println(); } } }
    查看全部
  • 1.IO流:输入流和输出流;(字节流和字符流) 2.字节流:InputStream、OutputStream;InputStream抽象了应用程序读取数据的方式;Outpustream抽象了应用程序写入数据的方式; EOF=End 读到-1就读取结束 3.输入流的基本方法 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长度的字节到流
    查看全部

举报

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

微信扫码,参与3人拼团

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

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