io流

[javaSE] IO流(管道流)

对着背影说爱祢 提交于 2020-01-09 02:44:35
之前我们使用 io 流,都是需要一个中间数组,管道流可以直接输入流对接输出流,一般和多线程配合使用,当读取流中没数据时会阻塞当前的线程,对其他线程没有影响 定义一个类 Read 实现 Runable 接口,实现 run() 方法,构造方法传递 PipedInputStream 对象 读取流里面的数据 定义一个类 Write 实现 Runable 接口,实现 run() 方法,构造方法传递 PipedOutputStream 对象 写入流里面数据 获取 PipedInputStream 对象, new 出来 获取 PipedOutputStream 对象, new 出来 调用 PipedInputStream 对象的 connect() 方法,对接输出流,参数: PipedOutputStream 对象 开启两个线程执行读写 import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; /** * 读取数据线程 * @author taoshihan * */ class ReadPipe implements Runnable{ private PipedInputStream in; public ReadPipe(PipedInputStream in

Java实现文件写入——IO流(输入输出流详解)

耗尽温柔 提交于 2020-01-08 17:58:03
输入输出的重要性: 输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据。流是一组有序的数据序列,根据操作的类型,分为输入流和输出流。 程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类。 Java的输入输出功能来自java.io 包中的InputStream类、OutputStream类、Reader类和Writer类以及继承它们的各种子类。 (一)解析文件处理的奥秘 1、学习使用文件类 : File类 File类用于封装系统的文件和目录的相关信息。在该类中定义了一些与平台无关的方法来操作文件。例如文件的大小、修改时间、文件路径等。 创建 File 对象可以通过下面3种方式: 方法1: 方法2: 方法3: new File(String pathName) File file = new File(“E://1.txt”) new File(String parent , String child) parent :父抽象路径名;child:子路径名字符串 2、如何获取文件信息 File 类是对文件和文件夹的抽象,包含了对文件和文件夹的多种属性和操作方法。File类的常用方法如下表: 返回 方法 说明 String getName 获取文件名称 String

IO流--File对象功能--文件列表

泪湿孤枕 提交于 2020-01-08 13:00:20
File对象的文件列表功能主要用到的方法是:list(); listFiles(); listRoots(); 1.list(); 返回一个字符串数组(String),这些字符串指定此抽象路径名表示的目录中的文件和目录。 2.listFiles(); 返回一个抽象路径名数组(返回 File[] ),这些路径名表示此抽象路径名表示的目录中的文件。 3.listFiles(FilenameFilter filter); 返回抽象路径名数组(返回 File[] ),这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 4.listRoots();列出可用的文件系统根(返回 File[])。 package com.tgx.file; import java.io.File; import java.io.FilenameFilter; public class FileDemo2 { public static void main(String[] args) { listRootsDemo(); } /* * 列出指定目录的所有文件,要是是文件夹,那么就列出文件夹里的文件。 * 使用listFiles();方法 */ public static void listDemo_3(){ File dir = new File("G:\\Exam6_1"); showFiles

IO流概述及其分类

这一生的挚爱 提交于 2020-01-06 17:25:25
IO流概述及其分类 A:概念 IO流用来吹了设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类是都在IO包中 流按流向分为两种:输入流和输出流 流按操作类型分为两种: 字节流:字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字符流:字符流只能操作纯字符数据,比较方便。 B:IO流常用父类 字节流的抽象父类: InputStream OutputStream 字符流的抽象父类: Reader Writer 以后在开发过程中,可以通过后缀来判断属于什么操作类型的流。 C:IO程序书写 使用前,导入IO包中的类 使用时,进行IO异常处理 使用后,释放资源 来源: CSDN 作者: 左绍骏 链接: https://blog.csdn.net/LeoZuosj/article/details/103841546

IO流之OutputStream:字节输出流

丶灬走出姿态 提交于 2020-01-02 19:15:51
java.io.OutputStream:字节输出流 此抽象类是表示输出字节流的所有类的超类。 定义了一些子类共性的成员方法: public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。 public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。 public abstract void write(int b) :将指定的字节输出流。 java.io.FileOutputStream extends OutputStream FileOutputStream:文件字节输出流 作用:把内存中的数据写入到硬盘的文件中 构造方法: * FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流。 * FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 参数:写入数据的目的 String name:目的地是一个文件的路径 File file

java知识点分享,IO流详解!

廉价感情. 提交于 2020-01-01 05:38:24
Java知识IO流详解 有人觉得IO知识不太重要,其实不然,IO的使用范围很广,最能体现IO价值的就是网络上的数据传递,尤其是进入互联网时代后,各种常见的分布式架构,都少不了IO的体现。并且很多大厂的面试题中都会体现出对IO的重视,包括衍生出来的NIO、序列化等等。因此学好IO,变成了一件很重要的事情。 IO基本概念 IO可以简单的理解成INPUT和OUT,代表输入输出的意思。输入就是读,输出就是写。 IO可以读写硬盘、光盘、内存、键盘、网络等资源上的数据。 流 IO中的流就相当于现实生活中的水流一样,一打开自来水的龙头开关,水就从一头流向另一头。可以理解成每个按顺序排列的水滴就是需要传输的字节。把有序数据理解成流,流负责传输数据,以便于输入输出。数据是流动的,是有方向的流动。 流的分类 按数据的走向可以分为:输入流,输出流。 按数据的单位可以分为:字节流、字符流。 按装饰模式可以分为:节点流(底层)、处理流(上层)。 输入流与输出流 输入流:只能从中读取数据,而不能向其写入数据。一般用于将数据从网络、硬盘读取到内存中。 输出流:只能向其写入数据,而不能从中读取数据。一般用于将数据从内存中写入到网络、硬盘。 输入流主要由InputStream和Reader作为父类。 输出流主要由OutputStream和Writer作为父类。 他们都是抽象的,因此无法直接创建对象。 字节流与字符流

Java使用IO流读取TXT文件

耗尽温柔 提交于 2019-12-31 09:39:08
通过BufferedReader读取TXT文件 window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputStream(file),“GBK”)为GBK会出现读取内容乱码。 //文件路径 String filePath="C:/Users/Admin/Desktop/products.txt"; File file=new File(filePath); BufferedReader reader = null; String tempString = null; int line =1; try { // System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK")); while ((tempString = reader.readLine()) != null) { System.out.println("Line"+ line + ":" +tempString); line ++ ; } reader.close(); } catch (FileNotFoundException e) { e

IO流(文件字节输入输出

旧城冷巷雨未停 提交于 2019-12-31 04:33:25
输入输出流可能有不允许操作,可能有出现错误,必须在try语句中进行 FileOutputStream out1=new FileOutputStream("test1.txt") FileOutputStream out2=new FileOutputStream(File file1) FileInputStream in1=new FileInputStream("test1",txt") FIleInputStream in2=new FileInputStream(File file) 还有一条 FIleInputStream in2=new FileInputStream(File file,boolean true1)//不加true会重写文件 读取规则 int read()//读取单个字节 int read(byte b[])//读取数据到b字节数组,字节长度为b.length int read(byte b[[,int off,int len)//off起始位置,len长度可以小,但不可以超过字节数组的长度,长度不够可以放在循环中,//最后会返回实际的int长度,读取到没有回返回-1 写规则 void write(int n)//写出多少字节字符 void write(byte b[])//把b[]数组写出 void write(byte b[],int off

IO流

别等时光非礼了梦想. 提交于 2019-12-30 04:53:21
IO:输入/输出(Input/Output) 流 是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输 IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载 使用场景 如果操作的是纯文本文件,优先使用字符流 如果操作的是图片、视频、音频等二进制文件。优先使用字节流 如果不确定文件类型,优先使用字节流。字节流是万能的流 字节流写数据 字节流抽象基类 InputStream:这个抽象类是表示字节输入流的所有类的超类 OutputStream:这个抽象类是表示字节输出流的所有类的超类 子类名特点:子类名称都是以其父类名作为子类名的后缀 字节输出流 FileOutputStream(String name):创建文件输出流以指定的名称写入文件 使用字节输出流写数据的步骤 创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件) 调用字节输出流对象的写数据方法 释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源) 字节流写数据的三种方式 使用字符串的getBytes()方法 得到一个字节数组 字节流写数据的两个小问题 字节流写数据如何实现换行 windows:\r\n linux:\n mac:\r 字节流写数据如何实现追加写入 public FileOutputStream

IO流中File文件最常用和直接的用法

夙愿已清 提交于 2019-12-27 00:14:52
一、File (一)概述 1、File: 1)文件和目录(文件夹)路径名的抽象表示形式 2)注意: 可以表示文件夹与文件,即路径与文件 抽象概念,即路径与文件是否存在不确定 2、构造方法 1)File(String pathname):根据一个路径得到File对象 File file = new File("E:\\demo\\a.txt"); 2)File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 File file2 = new File("E:\\demo", "a.txt"); 3)File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象 File file3 = new File("e:\\demo"); File file4 = new File(file3, "a.txt"); 1 package ltb20180106; 2 3 import javax.swing.*; 4 import java.awt.*; 5 import java.awt.event.*; 6 import java.io.*; 7 8 9 class ChineseTextEdit { 10 11 private JFrame jf; 12 private