Scanner、PrintWriter

读取输入 要想通过控制台进行输入,首先需要构造一个与“标准输入流”System.in关联的Scanner对象。 Scanner scan = new Scanner(System.in); 然后,就可以通过scan的各种方法来读取输入了。 String nextLine() 读取输入的一整行 int nextInt() 读取输入中的单词(以空格隔开),若读取的不是整型,则抛出异常 double n…

File类的使用

java.io.File类是文件和文件目录路径的抽象表示形式,与具体的操作系统无关。 File类提供了新建、删除、重命名文件和目录的功能,但File不能访问文件内容本身以及想文件中写入内容。如果需要访问文件内容本身,则需要使用输入/输出流。通常将File类的实例作为流的构造器参数,然后流就可以读取或写入数据到文件中。 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但…

IO流原理及流的分类

I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于处理设备之间的数据传输。如读/写文件,网络通讯等。Java程序中,对于数据的输入/输出操作以 “流(stream)” ” 的方式进行。可以想象两个节点之间连接着一跟管子,两节点之间通过管子来传输数据,而数据在管子里就像是水流一样,从一节点流到另一个节点。 java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并…

FileInputStream&FileOutputStream用法示例

FileReader、FileWriter只能够用来处理文本文件,但对于非文本文件(图片、视频、音乐等),这两个类就没有能力处理了。对于非文本文件,我们需要使用xxxInputStream、xxxOutputStream这些类来处理。 复制图片 try ( FileInputStream fileInputStream = new FileInputStream("dir/1.jpg&q…

缓冲流

对于节点流FileReader、FileWriter以及FileInputStream、FileOutputStream,真实开发场景中很少直接用,一般都会配合使用处理流(如缓冲流),来提高文件的处理效率。 缓冲流 为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区。 缓冲流要“套接”在相应的节点流之…

转换流

转换流提供了在字节流和字符流之间的转换 Java API提供了两个转换流: InputStreamReader:将InputStream转换为Reader OutputStreamWriter:将Writer转换为OutputStream 常见的应用场景有: 文件字符编码的转码 读取指定编码的文本文件 // 读取gdk编码的文本文件,使用utf-8读取 public static void rea…

对象流

ObjectInputStream和OjbectOutputSteam:用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。 对象序列化 对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其它程序获取了这种二进制流,…

标准输入输出流、打印流、数据流

标准输入输出流、打印流、数据流作为了解知识。 标准输入、输出流 System.in和System.out分别代表了系统标准的输入和输出设备。默认的标准输入流为键盘、标准输出流为屏幕。 System.in是InputStream类型,而System.out是PrintStream,PrintStream是OutputStream的子类 重定向:通过System类的setIn,setOut方法对默认设…

RandomAccessFile

RandomAccessFile 声明在java.io包下,但直接继承于java.lang.Object类。并且它实现了DataInput、DataOutput这两个接口,也就意味着这个类既可以读也可以写。 RandomAccessFile 类支持 “随机访问” 的方式,程序可以直接跳到文件的任意地方来读、写文件 支持只访问文件的部分内容 可以向已存在的文件后追加内容 RandomAccessFi…