版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、9.19.1文件文件9.2I/O9.2I/O流概述流概述9.39.3字节流字节流9.49.4字符流字符流9.59.5文件的随机访问和标准输入输出文件的随机访问和标准输入输出9.69.6对象流对象流9.79.7案例分析与实现(续案例分析与实现(续6 6)第第9章章 文件和数据流文件和数据流本章教学内容:本章教学内容:本章教学目标:本章教学目标: 掌握File类的使用理解流的不同分类掌握InputStream和OutputStream的使用掌握常用过滤流的使用掌握Reader和Writer的使用掌握利用RandomAccessFile类对文件随机访问的过程理解序列化和反序列化的概念掌握对象流的使用
2、 9.1文件9.1.19.1.1文件概述文件概述文件是存储在硬盘、光盘、移动存储设备上的数据的集合。文件存储形式可以是文本文档、图片、程序等,而且可以通过网络传输。 9.1.2 File9.1.2 File类类在java.io包中提供的File类能对文件及目录进行操作。File类是文件和目录路径名的抽象表示形式,在Java程序中,一个File对象可以代表一个文件或目录。利用File对象可以对文件或目录及其属性进行基本操作,可以获取与文件相关的信息,如名称、最后修改日期、文件大小等。通过调用File类提供的各种方法,能够完成创建、删除文件,重命名文件,判断文件的读写权限及是否存在,设置和查询文件
3、的最近修改时间、获取当前文件路径、获取当前目录文件列表等操作。 1 1FileFile类构造方法类构造方法File(String directoryPath)其中参数“directoryPath”是文件的路径名。如:File file1=new File(“f:demo.txt”);/只是在堆中创建了一个File对象,并将其引用赋给了file1变量,并不是在f盘上真正创建demo.txt文件。 2File类常用方法方法名方法名功能说明功能说明boolean canRead()boolean canRead()判断文件或目录是否可读判断文件或目录是否可读boolean createNewFile
4、()boolean createNewFile()自动创建一个自动创建一个FileFile对象指定文件名的空文件,只有在对象指定文件名的空文件,只有在指定文件名文件不存在的时候才能成功指定文件名文件不存在的时候才能成功boolean delete()boolean delete()删除删除FileFile对象对应的文件或目录对象对应的文件或目录boolean exists()boolean exists()判断判断FileFile对象对应的文件或目录是否存在对象对应的文件或目录是否存在String getAbsolutePath()String getAbsolutePath()获取获取Fil
5、eFile对象对应的文件或目录的绝对路径对象对应的文件或目录的绝对路径String getName()String getName()获取获取FileFile对象对应的文件或目录的名称对象对应的文件或目录的名称String getPath()String getPath()获取获取FileFile对象对应的文件或目录的路径对象对应的文件或目录的路径boolean isDirectory()boolean isDirectory()判断判断FileFile对象指向的是否为一个目录对象指向的是否为一个目录boolean isFile()boolean isFile()判断判断FileFile对象指
6、向的是否为一个文件对象指向的是否为一个文件long length()long length()返回返回FileFile对象对应的文件的大小,单位为字节对象对应的文件的大小,单位为字节boolean mkdir()boolean mkdir()新建一个新建一个FileFile对象所定义的一个路径,如果新建成功,对象所定义的一个路径,如果新建成功,返回返回true,true,否则返回否则返回falsefalse,此时,此时FileFile对象必须是目录对象必须是目录对象对象boolean renameTo(File boolean renameTo(File dest)dest)重命名重命名Fil
7、eFile对象对应的文件,如果命名成功,返回对象对应的文件,如果命名成功,返回truetrue,否则返回,否则返回falsefalselong lastModified()long lastModified()返回此返回此FileFile对象的最后一次被修改的时间对象的最后一次被修改的时间实例实例9-19-1创建一个File对象,检验文件是否存在,若不存在就创建,然后对File类的部分操作进行演示,如文件的名称、大小等。 3 3文件列表器文件列表器在在FileFile类中,还可以使用类中,还可以使用listlist()方法,把某个目录()方法,把某个目录中的文件或子目录依次列举出来。中的文件或
8、子目录依次列举出来。方法名方法名功能说明功能说明String list() String list() 当当FileFile对象为目录时,返回该目录下的所有对象为目录时,返回该目录下的所有文件及子目录文件及子目录 File listFiles()File listFiles()返回返回FileFile对象对应的路径的下的所有文件对对象对应的路径的下的所有文件对象数组象数组 String String list(FilenameFilter list(FilenameFilter filter) filter) 返回一个字符串数组,这些字符串为此返回一个字符串数组,这些字符串为此FileFile
9、对象对应的目录中满足指定过滤条件的文件对象对应的目录中满足指定过滤条件的文件和子目录和子目录 File File listFiles(FilenameFiltelistFiles(FilenameFilter filter)r filter)返回返回FileFile对象数组,这些对象数组,这些FileFile对象为此对象为此FileFile对象对应的目录中满足指定过滤条件的文件对象对应的目录中满足指定过滤条件的文件和子目录和子目录实例实例9-29-2利用list()方法将JDK根目录下的目录或文件的名称列举出来。实例实例9-39-3利用listFile()方法将JDK根目录下的目录或文件的名称
10、列举出来,并标明文件或目录。实例实例9-49-4利用list(FilenameFilter filter)方法列举出JDK根目录下的所有以.html或.htm为后缀的网页文件。9.2 I/O流概述 IO IO流指的是输入输出流,用来处理设备上的数据。这里的流指的是输入输出流,用来处理设备上的数据。这里的设备指硬盘、内存、键盘录入、网络传输等。设备指硬盘、内存、键盘录入、网络传输等。按照流的方向,可以将流分为两类:按照流的方向,可以将流分为两类:输入流和输出流。输入流和输出流。通常把输入流的指向称为源,程序从指向源的输入流中读取通常把输入流的指向称为源,程序从指向源的输入流中读取源中的数据。而输
11、出流的指向是数据要到达的一个目的地源中的数据。而输出流的指向是数据要到达的一个目的地,程序通过向输出流中写入数据把信息传递到目的地。,程序通过向输出流中写入数据把信息传递到目的地。程序只能从输入流中读取数据,而不能向其写入数据。反之程序只能从输入流中读取数据,而不能向其写入数据。反之,程序只能向输出流中写入数据,而不能从中读取数据。,程序只能向输出流中写入数据,而不能从中读取数据。 流的分类:流的分类: 按照流的方向,可以将流分为如下两类:按照流的方向,可以将流分为如下两类:输入流:只能从中读取数据,不能向其写入数据的流。输入流:只能从中读取数据,不能向其写入数据的流。输出流:只能向其写入数据
12、,不能从中读取数据的流。输出流:只能向其写入数据,不能从中读取数据的流。按照按照IOIO流所处理的数据类型,可以将流分为如下两类:流所处理的数据类型,可以将流分为如下两类:字节流:在流中处理的基本单位为字节的流。字节流:在流中处理的基本单位为字节的流。字符流:在流中处理的基本单位为字符的流。字符流:在流中处理的基本单位为字符的流。按照流的角色分,可以将流分为如下两类:按照流的角色分,可以将流分为如下两类:节点流:可以从节点流:可以从/ /向一个特定的向一个特定的IOIO设备(如磁盘或网络)读设备(如磁盘或网络)读/ /写数据的流写数据的流,节点流又常被称为低级流。,节点流又常被称为低级流。过滤
13、流:对流进行处理的流又称为过滤流。实现对一个已经存在的流的过滤流:对流进行处理的流又称为过滤流。实现对一个已经存在的流的连接和封装,通过所封装的流的功能调用实现数据读连接和封装,通过所封装的流的功能调用实现数据读/ /写功能的流。写功能的流。9.3字节流9.3.19.3.1字节输入流字节输入流InputStream类是一个抽象类,是所有字节输入流的父类,主要用于从数据源按照字节的方式向内存读入数据。常用方法如下:方法名方法名功能说明功能说明abstract int read()abstract int read()读取一个字节,并将它返回。如果遇到源的末尾,则返回读取一个字节,并将它返回。如果
14、遇到源的末尾,则返回-1-1。可以。可以通过返回值是否为通过返回值是否为-1-1来判断流是否到达了末尾来判断流是否到达了末尾 int read(byte b)int read(byte b)将数据读入到一个字节数组,同时返回实际读取的字节数,如果到将数据读入到一个字节数组,同时返回实际读取的字节数,如果到达流的末尾,则返回达流的末尾,则返回-1-1int read(byte b, int offset, int read(byte b, int offset, int len)int len)将数据读入到一个字节数组,放到数组将数据读入到一个字节数组,放到数组offsetoffset指定的位置
15、开始,并指定的位置开始,并用用lenlen来指定读取的最大字节数。同样到达流的末尾,则返回来指定读取的最大字节数。同样到达流的末尾,则返回-1-1int available()int available()用于返回在不发生阻塞的情况下,从这个流中可以读取的字节数用于返回在不发生阻塞的情况下,从这个流中可以读取的字节数void close()void close()关闭此输入流并释放与该流关联的所有系统资源关闭此输入流并释放与该流关联的所有系统资源InputStream类的常用子类类名类名 构造方法的主要参数构造方法的主要参数 功能描述功能描述 FileInputStream FileInput
16、Stream 类File的对象或字符串表示的文件名 以文件作为数据源以文件作为数据源 ByteArrayInputStream ByteArrayInputStream 字节数组 以字节数组作为输入源。以字节数组作为输入源。 FilterInputStream FilterInputStream InputStream的对象 用于装饰另一输入流以提用于装饰另一输入流以提供对输入数据的附加处理供对输入数据的附加处理功能,子类见表功能,子类见表9-6 9-6 SequeueInputStream SequeueInputStream 一系列InputStream的对象 将两个其他流首尾相接,将两个
17、其他流首尾相接,合并为一个完整的输入流。合并为一个完整的输入流。 ObjectInputStream ObjectInputStream InputStream的对象 用于从输入流读取串行化用于从输入流读取串行化对象。可实现轻量级对象对象。可实现轻量级对象持久性。持久性。 PipedInputStream PipedInputStream PipedOutputStreamPipedOutputStream的对象的对象 与另一输出管道相连,读与另一输出管道相连,读取写入到输出管道中的数取写入到输出管道中的数据,用于程序中线程间通据,用于程序中线程间通信信 FileInputStreamFile
18、InputStream类类是InputStream的子类,可以处理简单的文件输入操作。例如:为了读取f盘上的test1.txt文件,创建一个文件输入流对象的代码如下:FileInputStream fis=new FileInputStream(f:test1.txt);或File file=new File(f:test1.txt);FileInputStream fis=new FileInputStream(file);实例实例9-59-5利用FileInputStream类把f盘中test.txt文件中的内容读取并在控制台显示出来。 9.3.29.3.2字节输出流字节输出流Output
19、Stream类是所有字节输出流的父类,主要是用于把内容按照字节的方式写入到目的端。常用方法如下:方法名方法名功能说明功能说明void write(int c)void write(int c)将参数将参数c c的低字节写入到流中的低字节写入到流中void write(byte void write(byte b)b)将字节数组将字节数组b b中的数据写入到流中中的数据写入到流中void write(byte void write(byte b, int offset, b, int offset, int len)int len)将字节数组将字节数组b b中的从中的从offsetoffset开
20、始的开始的lenlen个个字节写入到流中字节写入到流中void close()void close()关闭此输入流并释放与该流关联的所有关闭此输入流并释放与该流关联的所有系统资源系统资源void flush()void flush()将缓冲中的字节立即发送到流中,同时将缓冲中的字节立即发送到流中,同时清空缓冲清空缓冲 OutputStream类也是抽象类,要想将数据进行写入,也必须使用该类的子类,通过子类创建输出流对象来调用write()方法进行数据写入。与FileInputStream类相对应的类是FileOutputStream类。该类用于处理简单的文本写入操作。实例实例9-69-6利用F
21、ileInputStream类和FileOutputStream类完成文件的复制功能。 9.3.39.3.3字节过滤流字节过滤流过滤流是为某种目的过滤字节或字符的数据流。基本字节输入/输出流提供的读取/写入方法,只能用来读取/写入字节。如果想要读取整数值、双精度值或字符串,需要一个输入过滤类来包装输入流。反之,则需要一个输出过滤类来包装输出流。例如:当需要处理基本数据类型时,使用FilterInputStream和FilterOutputStream过滤字节。 9.3.3.19.3.3.1缓冲数据流缓冲数据流1BufferedInputStream和BufferedOutputStream这两
22、个流提供带缓存的读写,提高了系统读写效率。(1)BufferedInputStream类的构造方法public BufferedInputStream(InputStream in):创建一个使用默认大小输入缓冲区的缓冲字节输入流。public BufferedInputStream(InputStream in,int size):创建一个使用指定大小输入缓冲区的缓冲字节输入流。其中 size指输入缓冲区的大小,如果size=0,则抛出llegalArgumentException异常。 (2 2)BufferedOutputStreamBufferedOutputStream类的构造方法类
23、的构造方法public BufferedOutputStreampublic BufferedOutputStream(OutputStream outOutputStream out):创):创建一个使用默认大小输出缓冲区的缓冲字节输出流。建一个使用默认大小输出缓冲区的缓冲字节输出流。public BufferedOutputStreampublic BufferedOutputStream(OutputStream outOutputStream out,int int sizesize):创建一个使用给定大小输出缓冲区的新缓冲字节):创建一个使用给定大小输出缓冲区的新缓冲字节输出流。其中
24、输出流。其中sizesize指输入缓冲区的大小,如果指输入缓冲区的大小,如果size=0size=0,则抛出则抛出IllegalArgumentException. IllegalArgumentException. 异常。异常。实例实例9-79-7利用利用BufferedInputStreamBufferedInputStream类和类和BufferedOutputStreamBufferedOutputStream类完成文件的复制功能。类完成文件的复制功能。9.4字符流9.4.19.4.1字符输入流字符输入流Reader类是表示字符输入流的所有类的父类,主要是用于从数据源按照字符的方式读取
25、数据。该类的所有方法在出错情况下都将引发IOException 异常。由于Reader类是抽象类,要想对文件中的字符进行读取,还必须使用该类的子类,通过其子类创建流对象来调用read()方法进行字符的读取。 为了读取一个文件,需要使用FileReader类的构造方法来打开一个到达该文件的输入流(该文件就是数据源,输入流指向该文件)。FileReader最常用的构造方法显示如下:FileReader(String filePath)FileReader(File fileObj)这里,filePath 是一个文件的完整路径,fileObj 是描述该文件的 File 对象。实例实例9-89-8利用
26、利用FileReaderFileReader类把类把f f盘中盘中test3.txttest3.txt文件中文件中的内容读取并在控制台显示出来。的内容读取并在控制台显示出来。 8.4.28.4.2字符输出流字符输出流Writer类是表示字符输出流的所有类的父类,主要是按照字符的方式把数据写入到流中。Writer类提供的方法与OutputStream类似,只是将基于Byte的参数改为基于Char 。与FileOutputStream相似,如果用户的文件读取需求比较简单,可以使用Writer类的子类FileWriter(字符文件输出流)来实现。该类用于向文件写字符信息。为了向一个文件写信息,需要使
27、用FileWriter类的构造方法来打开一个输出流。 常用的构造方法如下:常用的构造方法如下:FileWriter(String filePath)FileWriter(String filePath)FileWriter(String filePath, boolean append)FileWriter(String filePath, boolean append)FileWriter(File fileObj)FileWriter(File fileObj)实例实例9-89-8利用利用FileWriterFileWriter类将类将“你好你好 welcome!” welcome!”输出
28、到输出到f f盘盘中中test4.txttest4.txt文件中。文件中。 8.4.38.4.3字符缓冲流字符缓冲流Java 提供了字符缓冲流BufferedReader类和BufferedWriter类来对字符进行缓冲处理。缓冲字符流的出现提高了对流的操作效率。如果没有缓存,例如FileReader对象,每次调用read()方法进行读操作时,都会直接去文件中读取字节,转换成字符并返回,这样频繁的读取文件效率很低。如果利用缓存将数据先缓冲起来,然后一起写入或者读取出来,则可以大量减少访问文件的次数,提高访问效率。总之,使用缓冲流的好处是:能够更高效的读写信息。 1.1.字符缓冲输入流字符缓冲输
29、入流BufferedReader类的构造方法:public BufferedReader(Read in):创建一个使用默认大小输入缓冲区的缓冲字符输入流。public BufferedReader(Reader in,int size):创建一个使用指定大小输入缓冲区的缓冲字符输入流。其中 size指输入缓冲区的大小,如果size=0,则抛出llegalArgumentException异常。BufferedReader类的常用方法:public String readLine()throws IOException:读取一个文本行。 2.2.字符缓冲输出流字符缓冲输出流BufferedWr
30、iterBufferedWriter类的构造方法:类的构造方法:public BufferedWriterpublic BufferedWriter(writer outwriter out):创建一个使用默):创建一个使用默认大小输出缓冲区的缓冲字符输出流。认大小输出缓冲区的缓冲字符输出流。public BufferedWriterpublic BufferedWriter(Writer outWriter out,int sizeint size):创建):创建一个使用给定大小输出缓冲区的新缓冲字符输出流。一个使用给定大小输出缓冲区的新缓冲字符输出流。BufferedWriterBuffe
31、redWriter类的常用方法:类的常用方法:public void newLinepublic void newLine()()throw IOExceptionthrow IOException:写入一个行:写入一个行分隔符,行分隔符字符串由系统属性分隔符,行分隔符字符串由系统属性line.separatorline.separator定义定义,而不是单个新行(,而不是单个新行(nn)符。)符。实例实例9-99-9将将f f盘上的文件盘上的文件“test4.txttest4.txt”中的内容按行读出,中的内容按行读出,并写入到另一个文件并写入到另一个文件“test5.txttest5.tx
32、t”中,且给每一行按序中,且给每一行按序加上行号。加上行号。 9.4.49.4.4字节流与字符流的转换字节流与字符流的转换Java提供的InputStreamReader类和OutputStreamWriter类就是字节流和字符流之间转换的类,其中InputStreamReader从输入流中读取字节数据,并按照一定的编码方式将其转换为字符数据;OuputStreamWriter可以将字符数据编码成字节数据后写入到字节输出流中。 1 1InputStreamReaderInputStreamReader类类该类是该类是ReaderReader类的子类,它在字节输入流和字符输入流间架类的子类,它在
33、字节输入流和字符输入流间架起了一道桥梁。起了一道桥梁。InputStreamReader InputStreamReader 类有两个主要的构造方法:类有两个主要的构造方法:InputStreamReader(InputStream in)InputStreamReader(InputStream in):用默认字符集创建:用默认字符集创建一个一个 InputStreamReader InputStreamReader 对象。对象。InputStreamReader(InputStream in,String CharsetName)InputStreamReader(InputStream
34、in,String CharsetName):接受已指定字符集名的字符串,并用该字符集创建对象:接受已指定字符集名的字符串,并用该字符集创建对象。 2 2OutputStreamWriterOutputStreamWriter类类该类是该类是WriterWriter的子类,它将的子类,它将UTF-16UTF-16字符转换为指定的字符编字符转换为指定的字符编码形式写入到字节输出流。码形式写入到字节输出流。OutputStreamWriter OutputStreamWriter 也有对应的两个主要的构造函数:也有对应的两个主要的构造函数:OutputStreamWriter(OutputStre
35、am in)OutputStreamWriter(OutputStream in):用默认字符集创:用默认字符集创建一个建一个 OutputStreamWriter OutputStreamWriter 对象。对象。OutputStreamWriter(OutputStream in,String OutputStreamWriter(OutputStream in,String CharsetNarme)CharsetNarme):接受已指定字符集名的字符串,并用该:接受已指定字符集名的字符串,并用该字符集创建字符集创建 OutputStreamWriter OutputStreamWrit
36、er 对象。对象。实例实例9-109-10利用利用OutputStreamWriterOutputStreamWriter类在类在f f盘上创建一个文件盘上创建一个文件“test6.txt”“test6.txt”,按照,按照“GBK”“GBK”编码方式向其写入编码方式向其写入“你好,你好,欢迎进入欢迎进入JavaJava编程世界!编程世界!”;然后利用;然后利用InputStreamReader InputStreamReader 类将类将“test6.txt”“test6.txt”中的内容复制到中的内容复制到文件文件“test7.txt”“test7.txt”中。中。9.5 文件的随机访问和
37、标准输入输出9.5.19.5.1文件的随机访问文件的随机访问RandomAccessFile是IO包的类,但是其自成一派,从Object直接继承而来,是一个完全独立的类,它实现了DataInput和DataOutput接口。RandomAccessFile有强大的文件读写功能,其内部是大型byte,,getFilePointer()等方法操作的指针,可以对文件进行随机读取和写入。RandomAccessFile 类支持“随机访问”方式,可以跳转到文件的任意位置处读写数据。在访问一个文件的时候,如果不想将文件从头读到尾,而是希望像访问一个数据库一样地访问一个文本文件,这时,使用 RandomAc
38、cessFile 类就是最佳选择。 RandomAccessFile类的构造方法如下: public RandomAccessFile(String name, String mode) public RandomAccessFile(File file, String mode) 其中参数mode的可选值为:“r” 或 “rw”。当模式为r时,如果文件不存在则会报异常;当模式为rw时,如果文件不存在会自动创建文件,当文件已经存在时,不会对原有文件进行覆盖。 RandomAccessFileRandomAccessFile类的常用方法:类的常用方法:public long getFilePoi
39、nter()public long getFilePointer():获取文件位置指针:获取文件位置指针 public void seek(long pos) public void seek(long pos) :文件位置指针定位:文件位置指针定位public int skipBytes(int count)public int skipBytes(int count):跳过多少字节数:跳过多少字节数public long length() public long length() :获取文件长度:获取文件长度 9.5.29.5.2标准输入输出标准输入输出Java的标准输入/输出分别通过Sy
40、stem.in和System.out来代表,在默认的情况下分别代表键盘和显示器,当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过System.out执行输出时,程序总是输出到屏幕。因此,对键盘的输入操作称为标准输入操作;向显示器的输出操作称为标准输出操作。 JavaJava通过通过java.langjava.lang包中的包中的SystemSystem类提供标准输入输出,该类提供标准输入输出,该类包括类包括inin、outout、errerr几个成员方法,其基本功能如下:几个成员方法,其基本功能如下:System.outSystem.out:类型为类型为java.
41、io.PrintStreamjava.io.PrintStream,提供向,提供向“标准标准输出输出”写出数据的能力。写出数据的能力。System.inSystem.in:类型为类型为java.io.InputStreamjava.io.InputStream,提供从,提供从“标准输标准输入入”读入数据的能力。读入数据的能力。System.errSystem.err:类型为类型为java.io.PrintStreamjava.io.PrintStream,提供向,提供向“标准标准错误输出错误输出”写出数据的能力。写出数据的能力。实例实例9-119-11利用利用RandomAccessFileR
42、andomAccessFile类在类在f f盘上创建一个文件盘上创建一个文件“rtest.dat”“rtest.dat”并向其写入并向其写入1010个个doubledouble类型的数据;然后类型的数据;然后利用利用seekseek()方法将文件指针第()方法将文件指针第5 5个数据后面,重写第个数据后面,重写第6 6个个数据,最后输出文件中的数据,最后输出文件中的1010个数据。个数据。9.6 对象流Java提供了对象的序列化和反序列化机制,保证对象流在对象层次上进行输入输出。所谓对象序列化所谓对象序列化,就是将一个对象转换为二进制的数据流。通过将对象序列化,可以方便的实现对象的传输及保存。如果一个类的对象要想实现序列化,就必须保证该类实现serializable或Externalizable接口。在此接口中没有任何的方法,只是作为一个标识,表示本类的对象具备了序列化的能力而已。 所谓对象反序列化所谓对象反序列化,就是将对象的二进制数据流转换成相应的对象。 在Java
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州城市职业学院《机械设计》2023-2024学年第一学期期末试卷
- 贵阳职业技术学院《数据科学导论》2023-2024学年第一学期期末试卷
- 油橄榄示范基地建设项目可行性研究报告-油橄榄市场需求持续扩大
- 贵阳人文科技学院《乐理视唱一》2023-2024学年第一学期期末试卷
- 广州中医药大学《智慧城市信息系统建设与实践》2023-2024学年第一学期期末试卷
- 2025山西省建筑安全员-A证考试题库及答案
- 2025河南省建筑安全员B证(项目经理)考试题库
- 2025河南省安全员B证考试题库附答案
- 2025福建建筑安全员B证考试题库附答案
- 2025上海市安全员A证考试题库
- 滞销风险管理制度内容
- 关于物业服务意识的培训
- JJF 2184-2025电子计价秤型式评价大纲(试行)
- 排污许可证办理合同1(2025年)
- GB/T 44890-2024行政许可工作规范
- 上海科目一考试题库参考资料1500题-上海市地方题库-0
- 【7地XJ期末】安徽省宣城市宁国市2023-2024学年七年级上学期期末考试地理试题(含解析)
- 设备操作、保养和维修规定(4篇)
- (完整版)四年级上册数学竖式计算题100题直接打印版
- 玻璃瓶罐的缺陷产生原因及解决方法63699
- 高层住宅(23-33层)造价估算指标
评论
0/150
提交评论