一、概念 在Java中,文件的输入和输出是通过流(Stream)来实现的。...一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是 Internet 上的某个 URL。...字节流的处理单位是字节,通常用来处理二进制文件,例如音乐、图片文件等。...而字符流的处理单位是字符,因为Java采用Unicode编码,Java字符流处理的即为Unicode字符,所以在操作汉字、国际化等方面,字符流具有优势。...FileInputStream:把一个文件作为输入源,从本地文件系统中读取数据字节,实现对文件的读取操作。
{collapse-item label="java知识结构图" open} {/collapse-item} {collapse-item label="java知识结构图1"} {/collapse-item...} {collapse-item label="java知识结构图2"} {/collapse-item} {collapse-item label="java知识结构图5"} {/collapse-item
上篇文章,我们介绍了 Java 的文件字节流框架中的相关内容,而我们本篇文章将着重于文件字符流的相关内容。...基类 Reader/Writer 在正式学习字符流基类之前,我们需要知道 Java 中是如何表示一个字符的。...文件字符流 FileReader/Writer 文件的字符流可以说非常简单了,除了构造器,就不存在任何其他方法了,完全依赖文件字节流。...总结一下,我们花了三篇文章讲解了 Java 中的字节流和字符流操作,字节流基于字节完成磁盘和内存之间的数据传输,最典型的就是文件字符流,它的实现都是本地方法。...---- 文章中的所有代码、图片、文件都云存储在我的 GitHub 上: (https://github.com/SingleYam/overview_java)
遍历文件夹 import java.io.File; public class DemoRecursion { public static void main(String[] args) {...递归创建文件夹(目录) import java.io.File; public class DemoCreateFile { public static void main(String[]...递归删除 import java.io.File; public class DemoDeleteFile { public static void main(String[] args) {...查找文件 import java.io.File; import java.util.Scanner; public class DemoRecursion { //设置查找文件状态。...查找文件优化 import java.io.File; import java.io.FileFilter; import java.util.Scanner; public class DemoRecursion
FileItem item = (FileItem) map.get(entry.getKey()); //读写文件 InputStream is = item.getInputStream(); String
package copyfile; import java.io.*; public class copy { public static void main(String[] args) throws...newpath,boolean add) throws IOException{ FileReader fr = null; FileWriter fw = null; try { //实例化文件...,并判断文件是否存在 File oldfile=new File(oldpth); if(oldfile.exists()){ //初始化文件输入与输出流 fr=new...char[] buffer=new char[10]; int length; while(true){ int len=fr.read(buffer);//当文件读完...,返回-1,否则返回读取文件长度 if(len==-1)break; fw.write(buffer); } System.out.println("OK")
文件流有很多类 FileInputStream FileoutputStream FileReader FileWriter BufferedInputStream BufferedOutputSteam...BufferReader BufferWriter 缓冲流 它们用来加快读取时间的, 然后直接看代码了: 第一个知识点是文件的创建和目录的创建: /* * File:既可以表示文件(.txt,doc...,ppt,mp3,...)也可以表示文件目录(即文件夹),与平台无关 * File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。...最后一定要加上这一句:in.close(); 这里我把它单独写出来,是因为显眼些:原因是 程序中打开的文件流io资源不属于内存里的资源,java垃圾回收机制无法回收该资源,所以需要显是关闭文件的io...) i); } } catch (IOException e) { e.printStackTrace(); } finally { try { // 4.关闭现有的流
前言 友友们大家好,我是你们的小王同学 今天给大家带来的是java io流——创建文件 希望能给大家带来有用的知识 小王的主页:小王同学 小王的gitee:小王同学 小王的github:...小王同学 目录 文件 常用的文件操作 创建文件对象相关构造器和方法 相关方法 代码附上: 代码附上: 代码附上: 文件 文件在程序中是以流的形势来操作的 流:数据在数据源(文件)和程序(内存...)之间经历的路径 输入流:数据从数据源(文件)到程序(内存)的路径 输出流::数据从程序(内存)到数据源(文件)路径 常用的文件操作 创建文件对象相关构造器和方法 相关方法 new File(String...File("e:\\"); //父路径 String filename="wxz02.txt"; //这里的file对象,在java程序中只是一个对象而已...文件在开发工作中需求还是很多的 还是要好好学!
参考链接: Java基本输入和输出 在Android开发中,文件操作还是比较频繁的,本文主要记录下文件的加载,写入等相关操作的使用。 ...流的分类 在Java程序中操作文件,都是以流的形式来操作 首先按照流向可以分为输入流与输出流两种,这里的输入输出是站在内存的角度而言的,流向内存的为输入流,流出内存的为输出流按照传输的单位可以分为字节流与字符流...,字节流传输的是二进制字节,可操作任何类型的文件,字符流传输的是字符,只能用来读取文本文件 字节流 字节流有两个抽象的父类,InputStram和outputStream,本文主要记录文件的操作,其他的具体实现类暂不讨论...最后再根据将字节数组转换成需要的类型,最后也需要调用close释放资源 缓冲流 缓冲流相对于上述的字节流字符流并不是一个层面的东西,它并不具备直接操作文件的能力,而是要基于上述的字节流和字符流为基础...字符流主要包括FileWriter和FileReader,字符缓冲流BufferedWriter,BufferedReader,用法与上述的字节流基本一致,只不过调用read之后获取到的是字符类型,需要用
直接上代码,函数使用说明详见Java API文档 import java.io.*; public class StreamDemo { public static void main(String
利用文件输入流和输出流实现文件的复制, 下面的方法是:10字节10字节的复制,并且会把目标文件原来的内容给覆盖掉,如果目标文件原来有内容的话。...// 从指定的文件中读取内容,并写入到指定的文件内(相当于文件的复制) @Test public void testFileInputOutputStream() { File src = new.../**通过使用FileReader和FileWriter实现文件的复制 * Reader和Writer是一个字符流,也就是16bit * @param src * @param des...= null) fr.close(); } catch (IOException e) { e.printStackTrace(); } } } /**通过缓冲流实现文件的复制...(可以调高文件复制的效率) * 对于输出的缓冲流,写出的数据会先在内存中缓存, * 使用flush()将会使内存中的数据立刻写出 */ @Test public void testBufferedInputStreamOutputStream
文件系列往期文章: java 字节流入门(文件流) java 字节流入门(内存数组流) 本文介绍如何将内存数组流的数据写入文件流中。...即将内存数组流中的数据通过文件流写到磁盘上,也叫flush,或持久化。毕竟内存是短暂的,磁盘才是永恒。 流就像管道,数据就像管道里的水。...管道最大的魅力就是可以连接,使水从一个管道流到另一个管道,流也一样。 之前我们分别介绍了文件流和内存数组流,既然他们是流,那就应该可以连接起来。那么如何从内存数组流写入文件流呢?...在 java 字节流入门(文件流)中,我们介绍了 FileOutputStream(FOS) 和 RandomAccessFile(RAF) 两种写文件的方式。...对于两种文件流的写入方法,writeTo 总是比 copy 写入要快。毕竟 copy 多了一步拷贝,而且会占用额外内存。 所以不管哪种文件流,用 BAOS 的 writeTo() 都是最好的。
字符流读数据 – 按单个字符读取 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 调用方法读取数据: int data =...reader.read(); // 读取一个字符,返回该字符代表的整数,若到达流的末尾,返回-1 字符流读数据 – 按字符数组读取 创建字符流读文件对象: Reader reader = new FileReader...– 按单个字符读写 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 创建字符流写文件对象: Writer writer...– 按字符数组读写 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 创建字符流写文件对象 : Writer writer...为此,Java的设计者们提供了高效的缓冲流供开发者使 用 ,下篇随笔介绍!
Java io 流操作demo类 1.读取操作 /** *@author lxw *@date 2020/6/24 *@desc 获取文件输入流,这里读入内存中...byte[] bytesRel; try { //读取Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH路径下文件名位...in = new FileInputStream(f); //in.available 只适合于读取本地文件时判断流中字节数,不适合网络中的流数据大小判定...原因:{}",e.getMessage()); } } } return bytesRel; } 2.写文件.../** *@author lxw *@date 2020/6/24 *@desc 写文件 如果想提高效率,可以使用缓冲流 *@param [pdfByte,
Java学习之文件io流篇 0x00 前言 在平时的一些开发中,普遍都会让脚本运行的时候,去存储一些脚本运行结果的数据,例如开发一个爬虫,这时候我们爬取下来的内容,就需要存储到本地,那么这时候就会用到一些操作文件的类...0x02 IO流概述 IO流概述 java里面的io流指的是对一些文件内容做一个输入输出的作用。也就是input和output,对文件进行读取和输入数据的操作。...如果创建一个io流的对象,必须传入文件的路径,,如果没有该文件就会创建该文件,如果有就会清空原本有的数据。...ObjectOutputStream 类 ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。也就是对对象进行序列化的一个类。...FileoutputStream:字节输出流,用于将字节写出到文件中。 FileinputStream:字节输出流,用于读取文件中的字节。
一、通过字符流复制文件 import java.io.*; public class Test { public static void main(String args[]) throws IOException...(); int n; FileReader in = new FileReader("e:/java/code/aa.txt"); FileWriter ci = new FileWriter...("e:/java/code/copy.txt"); while((n=in.read())!...1) { ci.write(n); System.out.print((char)n); } in.close(); ci.close(); } } 二、通过字节流复制文件...import java.io.*; public class Test1 { public static void main(String args[]) throws IOException
//File对象 C:/Users/28528/Desktop/java文件练习 //先构造一个FIle对象,传入文件路径(绝对路径,相对路径) //绝对路径是以根目录开头的完整路径...如 C:/Users/java文件练习 //相对路径 如 /usr/bin/javac //注意Windows平台使用\作为路径分隔符, //在Java...\\sub\\javac"); // 绝对路径是C:\sub\javac File f=new File("C:/Users/28528/Desktop/java文件练习");...返回规范路径 跟绝对路径类似 //File 调用方法 //1 判断File对象里的路径是否存在 File f1=new File("C:/Users/28528/Desktop/java...System.out.println(f2.length()); //File创建文件和删除文件 String name1="默认文件夹1",name2="txt";//默认的文件名跟后缀
可以获取流 default Stream stream() 1.根据List获取流 2.根据Set获取流...3.根据Map获取流 3.1根据Map集合的键来获取流 3.2根据Map集合的值获取流...3.3根据Map集合的键值对对象获取流 4.根据数组获取流 代码演示: 1.根据List集合获取流 //...Stream流中提供了一个方法,可以把流中的数据收集到单例集合中 R collect(Collector<?...,可以使用 java.util.stream.Collectors工具类中的静态方法: – public static Collector<T,
Java中的IO操作涉及到的概念及相关类很多,很容易弄混,今天特来整理总结一下,并附上一份完整的文件操作的代码。...按照流-对应操作的角色的不同(是IO设备,还是其他流)是否能够直接向特定的IO设备如文件、网络、磁盘等,能够直接与这些进行读写的称之为节点流, 对节点流进一步封装的流,通过封装后的流来实现读写功能,处理流也被称为高级流...注意事项 1、流和数组不一样,不能通过索引读写数据。在流中,你也不能像数组那样前后移动读取数据,除非使用RandomAccessFile 处理文件。 2、流仅仅只是一个连续的数据流。...示例代码 package com.lingyejun.io; import java.io.*; /** * Created by Lingye on 2018/9/27 20:15 */ public...// 按照字节流读取的话,一个汉字两个字节 fileStreamOperate.readFileByFileInputStream(); // 按照字符读取,java
在编程语言的教材中,文件流大多是放在最后一章介绍的,而且大学不怎么考流,所以没有重视过。在开始学习 java 流时,发现大多博客上来就放一大家子类图,每次看到都头大。...在数据库领域,不可避免会接触到文件和流,而且磁盘上的文件组织是一件很有意思的事。因此,通过对实际项目中的流使用方式进行研究,加上网上博客学习,发现流也可以快速入门。...本系列教程的目标是从最简单的入手,一步步入门 java 字节流。...我们从文件流入手,先介绍两类文件流,都是字节流: 顺序文件字节流:FileOutputstream、FileInputStream 随机文件字节流:RandomAccessFile。...由于很好的灵活性,大部分大数据的文件格式的读取都用的这种方式。 先放工具: ? 主要测试过程: ? 输出: ? 这两中文件流很直观,区别也很明显,一个顺序读写,一个随机读写。 ?
领取专属 10元无门槛券
手把手带您无忧上云