已阅读5页,还剩131页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,2019/5/16,第四讲 Java的输入/输出系统,The Java IO System,2019/5/16,2,学习要点,流的概念 流的分类 各种流的区别及使用,2019/5/16,3,Java中的输入和输出,java.io包封装Java的输入和输出操作 Java中采用“流”的方式提供了输入和输出操作。 java.io包提供了永久保存对象状态的机制,2019/5/16,4,流(Stream)的概念,流可以看作是一个数据传递的通道 通过流,数据按照顺序从源端送至目标端,2019/5/16,5,通过流读取数据,从某数据源中读取数据时,从数据源建立一个“流”,然后从流中依次读取数据,2019/5/16,6,通过流写入数据,把数据写入到目标时,从目标端建立一个“流”,然后将数据依次写入到流中,2019/5/16,7,流的类型,InputStream(输入流) 可以从中读取数据的流称为输入流 OutputStream(输出流) 可以向其中写入数据的流称为输出流,2019/5/16,8,流中的数据,Java流中支持两种类型的数据 字符 字节 根据流中支持的数据的不同,Java中的流分为两种 字符流 字节流,2019/5/16,9,字符流,字符流处理以字符为单位进行的读写操作。 字符流处理的信息是基于文本的信息 字符流支持Unicode中的任何字符 Reader和Writer是处理字符流的两个基本类 java.io包中所有以“Reader”和“Writer”结尾的类都是处理字符流的类。,2019/5/16,10,字符流类型的输入流,2019/5/16,11,字符流类型的输出流,2019/5/16,12,字节流,字节流处理以字节为单位进行的数据读写操作 InputStream和OutputStream是处理字节流的两个基本类 java.io包中的所有以InputStream和OutputStream结尾的类都是处理字节流的类,2019/5/16,13,字节流类型的输入流,2019/5/16,14,字节流类型的输出流,2019/5/16,15,输入流的基本方法,Reader类的基本方法 int read() int read(char cbuf) int read(char cbuf, int offset, int length) InputStream类的基本方法 int read() int read(byte cbuf) int read(byte cbuf, int offset, int length),2019/5/16,16,输出流的基本方法,Writer的基本方法 int write(int c) int write(char cbuf) int write(char cbuf, int offset, int length) OutputStream的基本方法 int write(int c) int write(byte cbuf) int write(byte cbuf, int offset, int length),2019/5/16,17,流的打开和关闭,任何流在对象建立的时候会自动打开。 任何流不会自动进行关闭(除非它被垃圾收集了),可以使用close()方法对流进行关闭。 使用close()方法关闭了流以后,将不能再从其中读出数据或向其中写入数据。,2019/5/16,18,文件的读写,对文件的读写是Java中最普通的I/O操作。 对文件操作的流包括以下几种 输入流:FileInputStream、FileReader 输出流:FileOutputStream,FileWriter 他们实现了最基本的read和write操作。,2019/5/16,19,File类,在进行文件读写操作时,必须知道一些有关文件的信息,File类封装了读取和设置文件属性的方法,2019/5/16,20,File类的构造方法,public File(String pathName) 创建一个路径名为“pathName”的文件。 public File(String parent, String child) 在“parent”目录下,建立一个名为“child”的文件 public File(File parent, String child) 在“parent”目录下,建立一个名为“child”的文件 public File(URI uri) 以“uri”为路径名,创建一个文件,2019/5/16,21,File类中的操作,文件名操作 目录操作 文件属性操作,2019/5/16,22,File类中的文件名操作,public String getName():得到一个不包含路径的文件名 public String getParent():得到文件上一级的目录名 public File getParentFile():得到文件对象父路径名 public String getPath():返回文件路径名字符串,即路径文件名。 public String list():返回一个字符串数组,为该文件所在目录下的所有文件名列表。,2019/5/16,23,File类中的文件名操作,public boolean renameTo(File newName):重新命名文件 public File getCanonicalFile() :等价于new File(this.getCanonicalPath() ) public String getAbsolutePath():得到一个文件的绝对路径名 public File getAbsoluteFile():等价于new File(this.getAbsolutePath() ),2019/5/16,24,文件类中的文件属性测试,public boolean exists():测试文件是否存在。 public boolean isDirectory():测试文件是否为目录。 public boolean isFile():测试文件是否一般的文件(非目录)。 public boolean isAbsolute():测试文件是否为绝对路径。 pubic boolean isHidden():测试文件是否为隐含文件。 public boolean canRead():测试文件是否可读。 pubilc boolean canWrite():测试文件是否可写。,2019/5/16,25,文件类中的文件信息和工具,public long lastModified():返回文件最后一 次修改的时间。 public long length():返回文件长度。 public boolean delete():删除该文件,若文件为目录名,该目录必须为空。 public void deleteOnExit():当虚拟机执行结束时,删除该文件或目录。,2019/5/16,26,File类中的目录操作,public boolean mkdir():创建指定的目录。 pubic boolean mkdirs():创建指定的目录,包含任何不存在的父目录。 pubic String list():返回一个字符串数组,包含该文件目录下的所有文件名。 public String list(FilenameFilter filter);返回一个字符串数组,包含该文件目录下满足指定文件过滤器的文件。 public File listFiles():返回该文件目录下的文件列表。 pubic File listFiles(FilenameFilter filter):返回该文件目录下,满足指定文件过滤器的文件列表。,2019/5/16,27,File类中的文件属性设置,public boolean setReadOnly():将文件或目录标记为只读属性。 public boolean setLastModified(long time):设置该文件或目录的最后修改时间。,2019/5/16,28,File类中的其他方法,public int compareTo(File file):比较两个文件是否相同。 public boolean equals(Object obj):判断该文件与指定对象是否表示相同的文件。 public int hashCode():返回文件名的哈希码。,2019/5/16,29,文件类举例,import java.io.*; public class FileTest public static void main(String args) if(args.length 0) for(int i=0; iargs.length; i+) File fileToCheck = new File(argsi); showInfo(fileToCheck); ,2019/5/16,30,public static void showInfo(File file) if(file.exists() if(file.isFile() System.out.println(“is a file.“); System.out.println(“Name: “+file.getName(); System.out.println(“Parent: “+file.getParent(); System.out.println(“Parent File: “+file.getParentFile(); System.out.println(“Path: “+file.getPath(); System.out.println(“Readable: “+file.canRead();,2019/5/16,31,System.out.println(“Writable: “ +file.canWrite(); System.out.println(“Length: “ +file.length(); else System.out.println(“is a directory.“); String files = file.list(); for(int i=0; ifiles.length; i+) System.out.println(“child “+i+“: “ +filesi); ,2019/5/16,32,File roots = file.listRoots(); for(int i=0; iroots.length; i+) System.out.println(“root “+i+“: “+rootsi); else System.out.println(file.getName()+ “ not exits.“); ,2019/5/16,33,文件输入流的构造方法,FileInputStream的构造方法 FileInputStream(File file) FileInputStream(FileDescriptor fdObj) FileInputStream(String name) FileReader FileReader(File file) FileReader(FileDescriptor fd) FileReader(String fileName),2019/5/16,34,文件输出流的构造方法,FileOutputStream的构造方法 FileOutputStream(File file) FileOutputStream(File file, boolean append) FileOutputStream(FileDescriptor fdObj) FileOutputStream(String name) FileOutputStream(String name, boolean append),2019/5/16,35,文件输出流的构造方法,FileWriter的构造方法 FileWriter(File file) FileWriter(File file, boolean append) FileWriter(FileDescriptor fdObj) FileWriter(String name) FileWriter(String name, boolean append),2019/5/16,36,对文件进行读写操作举例,import java.io.*; public class Copy public static void main(String args) throws IOException File inputFile = new File(“farrago.txt“); File outputFile = new File(“outagain.txt“); FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); int c; while (c = in.read() != -1) out.write(c); in.close(); out.close(); ,2019/5/16,37,标准I/O流,通过控制台完成输入、输出,实现人机交互的流称为标准I/O流。 java.lang.System类中对应于标准I/O的几个静态变量: System.in:标准输入,如键盘。 Syetem.out:标准输出,如计算机屏幕。 System.err:标准错误,终端窗口。,2019/5/16,38,标准输入System.in,System.in是一个InputStream对象,常与键盘或用户指定的其它输入设备关联。 System.in常与read()方法连用,获取字节流数据,一次读取一个字节,返回0-255之间的一个整数,如果碰到输入结尾,则返回-1。,2019/5/16,39,标准输出System.out,System.out是一个PrintStream对象,常与系统的输出设备关联,如屏幕,或用户指定的其它设备。 System.out中包含两种类型的输出方法 print方法:输出完当前内容后不换行 println方法:输出完当前内容后进行换行,2019/5/16,40,System.out中的打印方法,2019/5/16,41,标准输入举例,import java.io.*; public class Echo public static void main(String args) throws IOException BufferedReader in = new BufferedReader( new InputStreamReader(System.in); String s; while(s = in.readLine().length() != 0) System.out.println(s); ,2019/5/16,42,Stream的链接处理,Java中使用一系列的流链接在一起来完成对数据的处理,,数 据 源,FileInputStream,BufferedInputStream,DataInputStream,程 序,数 据 源,FileInputStream,BufferedOutputStream,DataOutputStream,程 序,2019/5/16,43,流的功能,I/O流的链接处理使得流不仅仅能够完成数据读写操作,还对数据进行了大量的处理 数据缓冲 管道 内存读写 流的拼接 字节和字符转换 对象序列化,2019/5/16,44,过滤流(Filter Stream),过滤流的基本类为抽象类 过滤流实现链接处理的基本类 过滤流是基本流的扩展 Java I/O中的过滤流的基本类如下 FilterInputStream FilterReader FilterOutputStream FilterWriter,2019/5/16,45,过滤流的子类,Buffered Stream(缓冲流) Data Stream(数据流) LineNumber Stream Pushback Stream,2019/5/16,46,缓冲流(Buffered Stream),缓冲流是过滤流的子类。 缓冲流为其他流对象添加了缓冲功能。 Java I/O中的缓冲流构件: BufferedInputStream BufferedReader BufferedOutputStream BufferedWriter,2019/5/16,47,缓冲流的操作过程,使用缓冲输入流时数据先按照块读入缓冲区,然后可以通过访问缓冲区来访问被读入的块 使用缓冲输出流时,先把数据输出到缓冲区,直至缓冲区满时,将缓冲区的数据一次性写入。,2019/5/16,48,BufferedInputStream,BufferedInputStream的构造方法 BufferedInputStream(InputStream in):以给定的InputStream对象为基础构造一个BufferedInputStream对象,同时为其分配默认大小的缓冲区 BufferedInputStream(InputStream in, int size):以给定的InputStream对象为基础构造一个BufferedInputStream对象,同时为其分配给定大小的缓冲区,2019/5/16,49,BufferedInputStream中的方法,available():返回可以一次性从缓冲区中读取的数据的数量 mark(int readlimit):标记InputStream中的当前位置。readLimit参数声明标记失效前,输入流可以读取的字节数。 markSupported():判断当前的流是否支持标记。 reset():重新设置mark skip(long n) :从InputStream的当前位置开始删除给定位数的数据。,2019/5/16,50,BufferedReader的构造方法,BufferedReader(Reader in) :构造一个以给定的Reader对象为基础的BufferedReader对象,并建立规定默认长度的缓冲区。 BufferedReader(Reader in, int sz) :构造一个以给定的Reader对象为基础的BufferedReader对象,并建立规定指定长度的缓冲区。,2019/5/16,51,BufferedReader中的方法,mark(int readAheadLimit):标记InputStream中的当前位置,readAheadLimit参数规定当从mark的位置开始往后的有效位置。 markSupported():返回当前的InputStream对象中是否支持Mark readLine():读取当前行的数据 reset():重新设置mark位置 skip(long n):从InputStream的当前位置开始删除给定位数的数据,2019/5/16,52,BufferedOutputStream的构造方法,BufferedOutputStream(OutputStream out):以给定的OutputStream为基础建立BufferedOutputStream对象,并为其规定默认大小的缓冲区。 BufferedOutputStream(OutputStream out, int size) :以给定的OutputStream为基础建立BufferedOutputStream对象,并为其规定指定大小的缓冲区。,2019/5/16,53,BufferedOutputStream中的方法,flush():强制将当前的缓冲区中的内容写入到OutputStream中去 write(byte b, int off, int len):将给定的数组中从off位置开始的指定数量的数据写入到BufferedOutputStream中去 write(int b):将给定的数据写入到BufferedOutputStream中去,2019/5/16,54,BufferedWriter的构造方法,BufferedWriter(Writer out):以给定的Writer对象为基础建立一个BufferedWriter对象,并为其规定默认大小的缓冲区 BufferedWriter(Writer out, int sz):以给定的Writer对象为基础建立一个BufferedWriter对象,并为其规定指定大小的缓冲区,2019/5/16,55,BufferedWriter中的方法,flush():强制将当前的缓冲区中的内容写入到Writer中去 newLine():为BufferedWriter建立一个新行,即向其中插入一个表示新行的字符。 write(char cbuf, int off, int len):将给定的字符数组中从off位置开始的指定数量的字符写入到当前的BufferedWriter中去 write(int c) :将给定的数据写入到当前的BufferedWriter中 write(String s, int off, int len):将给定的字符串中从off位置开始的指定数量的字符写入到当前的BufferedWriter中去,2019/5/16,56,数据流(Data Stream),数据流是过滤流的子类 数据流完成了简单数据类型的读写功能 Java I/O中的数据流构件 DataInputStream DataOutputStream,2019/5/16,57,DataInputStream的构造方法,DataInputStream(InputStream in):以给定的InputStream为基础构造一个DataInputStream对象。,2019/5/16,58,DataInputStream中的方法,read(byte b):将DataInputStream中的数据读取到给定的数组中,同时返回实际读取的位数 read(byte b, int off, int len):从DataInputStream中读取最多len个字节的数据,存放到字节数组b中从off开始的位置。 readBoolean():从DataInputStream中读取boolean数据 readByte():从DataInputStream中读取byte数据 readChar() :从DataInputStream中读取char类型数据,2019/5/16,59,DataInputStream中的方法,readDouble():从DataInputStream中读取double类型数据 readFloat():从DataInputStream中读取float类型数据 readFully(byte b):从DataInputStream中读取长度为给定数组长度的数据,同时把数据保存到给定的数组中 readFully(byte b, int off, int len):从DataInputStream中读取长度为给定长度的数据,同时把数据保存到给定的数组中的给定位置上 readInt():从DataInputStream中读取int类型数据,2019/5/16,60,DataInputStream中的方法,readLong():从DataInputStream中读取long类型数据 readShort():从DataInputStream中读取short类型数据 readUnsignedByte():从DataInputStream中读取从0到255之间的数据 readUnsignedShort():从DataInputStream中读取从0到65535之间的数据 readUTF():从DataInputStream中读取UTF-8编码的字符 skipBytes(int n) :从DataInputStream中删除给定位数的数据。,2019/5/16,61,DataOutputStream的构造方法,DataOutputStream(OutputStream out) :以给定的OutputStream为基础构造一个DataOutputStream对象,2019/5/16,62,DataOutputStream中的方法,size():返回被写入到DataOutputStream中的数据的位数 writeBoolean(boolean v):将给定的boolean值写入到DataOutputStream中 writeByte(int v):将int值的1位字节表示写入到DataOutputStream中,int值必须在0到255之间 writeBytes(String s):将给定的字符串以字节方式写入到DataOutputStream中 writeChar(int v):将给定的int值作为2位的字节写入到DataOutputStream中,2019/5/16,63,DataOutputStream中的方法,writeChars(String s):将给定的字符串写入到DataOutputStream中 writeDouble(double v):将给定的double数据写入到DataOutputStream中 writeFloat(float v):将给定的float数据写入到DataOutputStream中 writeInt(int v):将给定的int数据写入到DataOutputStream中,2019/5/16,64,DataOutputStream中的方法,writeLong(long v):将给定的long数据写入到DataOutputStream中。 writeShort(int v):将给定的int值强制转换成为short类型数据同时写入到DataOutputStream中。 writeUTF(String str) :将给定的字符串使用修改过的UTF编码,再写入到DataOutputStream中。,2019/5/16,65,DataOutputStream举例,import java.io.*; public class DataIODemo public static void main(String args) throws IOException DataOutputStream out = new DataOutputStream( new FileOutputStream(“invoice1.txt“); double prices = 19.99, 9.99, 15.99, 3.99,4.99 ; int units = 12, 8, 13, 29, 50 ; String descs = “Java T-shirt“,“Java Mug“, “Duke Juggling Dolls“,“Java Pin“, “Java Key Chain“ ;,2019/5/16,66,for (int i = 0; i prices.length; i +) out.writeDouble(pricesi); out.writeChar(t); out.writeInt(unitsi); out.writeChar(t); out.writeChars(descsi); out.writeChar(n); out.close(); DataInputStream in = new DataInputStream( new FileInputStream(“invoice1.txt“); double price ,total = 0.0; int unit; StringBuffer desc;,2019/5/16,67,try while (true) price = in.readDouble(); in.readChar(); unit = in.readInt(); in.readChar(); char chr; desc = new StringBuffer(20);,2019/5/16,68,while (chr = in.readChar() != n) desc.append(chr); System.out.println(“Youve ordered “ + unit +“ units of “ +desc + “ at $“ + price); total = total + unit * price; catch (EOFException e) System.out.println(“For a TOTAL of: $“ + total); in.close(); ,2019/5/16,69,Checked Stream,Checked Stream是过滤流的子类 使用Checked Stream时,可以在输入和输出数据时,记录数据的个数,通过个数来对数据进行完整性校验 Checked Stream不在java.io包中,它存在于包java.util.zip包中。 Checked Stream中的构件为 CheckedInputStream CheckedOutputStream,2019/5/16,70,Checked Stream举例,import java.util.zip.*; import java.io.*; public class CheckedIOStreamDemo public static void main(String args) throws Exception Adler32 inChecker = new Adler32(); Adler32 outChecker = new Adler32(); CheckedInputStream in = null; CheckedOutputStream out = null;,2019/5/16,71,try in = new CheckedInputStream(new FileInputStream(args0), inChecker); out = new CheckedOutputStream(new FileOutputStream(args1), outChecker); catch (FileNotFoundException e) System.err.println(“CheckedIODemo: “ + e); System.exit(-1); catch (IOException e) System.err.println(“CheckedIODemo: “ + e); System.exit(-1); ,2019/5/16,72,int c; while (c = in.read() != -1) out.write(c); System.out.println(“input checked sum: “ + inChecker.getValue(); System.out.println(“output checked sum: “ + outChecker.getValue(); in.close(); out.close(); ,2019/5/16,73,LineNumber Stream,LineNumber Stream是过滤流的子类 LineNumber Stream提供了按行读取内容的方法 LineNumber Stream不提供输出的功能 Java I/O中的LineNumber Stream构件 LineNumberReader LineNumberInputStream(Deprecated),2019/5/16,74,LineNumberReader的构造方法,LineNumberReader(Reader in):以给定的Reader对象为基础构造一个LineNumberReader对象,并为其分配默认大小的缓冲区 LineNumberReader(Reader in, int sz):以给定的Reader对象为基础构造一个LineNumberReader对象,并为其分配指定大小的缓冲区,2019/5/16,75,LineNumberReader中的方法,getLineNumber():获取当前行的行号 readLine():读取当前的行 setLineNumber(int lineNumber):设置当前的行号,2019/5/16,76,Pushback Stream,Pushback Stream是过滤流的子类 Pushback Stream提供了回退的机制,即可以将已经读取的一段内容重新回退到流中,然后再次读取 Pushback Stream不提供输出的功能 Java I/O中的Pushback Stream构件 PushbackInputStream PushbackReader,2019/5/16,77,PushbackInputStream中的构造方法,PushbackInputStream(InputStream in):以给定的InputStream为基础构造PushbackInputStream对象,并为其分配默认大小的缓冲区 PushbackInputStream(InputStream in, int size):以给定的InputStream为基础构造PushbackInputStream对象,并为其分配指定大小的缓冲区,2019/5/16,78,PushbackInputStream中的方法,unread(byte b):将给定的数组中的内容回退到PushbackInputStream中的缓冲区 unread(byte b, int off, int len):将给定数组中从off位置开始的规定长度的数据回退到PushbackInputStream中的缓冲区中 unread(int b):将给定的数据回退到PushbackInputStream的缓冲区中,2019/5/16,79,PushbackReader的构造方法,PushbackReader(Reader in):以给定的Reader对象为基础构造PushbackReader对象,同时为其分配默认大小的缓冲区 PushbackReader(Reader in, int size):以给定的Reader对象为基础构造PushbackReader对象,同时为其分配规定大小的缓冲区,2019/5/16,80,PushbackReader中的方法,unread(char cbuf):将给定的字符数组中的数据回退到PushbackReader对象的缓冲区中 unread(char cbuf, int off, int len):将给定的字符数组中的数据从off位置开始,指定长度的字符回退到PushbackReader对象的缓冲区中 unread(int c):将给定数据回退到PushbackReader对象的缓冲区中,2019/5/16,81,管道流(Pipe Stream),管道流的作用 将一个程序、线程或代码段的输出连接到另一个程序、线程或代码段的输入 Java I/O中的管道流构件 PipedInputStream PipedOutputStream PipedReader PipedWriter,2019/5/16,82,管道流的操作流程,使用管道流时要求管道的输入流与管道的输出流必须事先连接好 管道输入流将数据从管道中读出 管道输出流将数据送入管道,2019/5/16,83,PipedInputStream的构造方法,PipedInputStream() :构造一个空的PipedInputStream对象 PipedInputStream(PipedOutputStream src):构造一个和给定的PipedOutputStream对象相关联的PipedInputStream对象,2019/5/16,84,PipedInputStream中的方法,connect(PipedOutputStream src):将PipedInputStream和给定的PipedOutputStream相关联,2019/5/16,85,PipedReader的构造方法,PipedReader():构造一个空的PipedReader对象 PipedReader(PipedWriter src):构造一个与规定的PipedWriter对象相关联的PipedReader对象,2019/5/16,86,PipedReader中的方法,connect(PipedWriter src) :将当前的PipedReader对象和给定的PipedWriter对象相关联,2019/5/16,87,PipedOutputStream的构造方法,PipedOutputStream() :构造一个空的PipedOutputStream对象 PipedOutputStream(PipedInputStream snk) :构造一个与给定的PipedInputStream相关联的PipedOutputStream对象,2019/5/16,88,PipedOutputStream中的方法,connect(PipedInputStream snk):将当前的PipedOutputStream与给定的PipedInputStream对象相关联,2019/5/16,89,PipedWriter中的构造方法,PipedWriter() :构造一个空的PipedWriter对象 PipedWriter(PipedReader snk):构造一个与给定的PipedReader对象相关联的PipedWriter对象,2019/5/16,90,PipedWriter中的方法,connect(PipedReader snk) :将当前的PipedWriter对象和给定的PipedReader对象相关联,2019/5/16,91,管道流使用举例,import java.io.*; public class RhymingWords public static void main(String args) throws IOException DataInputStream words = new DataInputStream(new FileInputStream(“words.txt“); / do the reversing and sorting InputStream rhymedWords = reverse(sort(reverse(words); / write new list to standard out DataInputStream in = new DataInputStream(rhymedWords);,2019/5/16,92,String input; while (input = in.readLine() != null) System.out.println(input); in.close(); public static InputStream reverse(InputStream source) throws IOException DataInputStream in = new DataInputStream(source); PipedOutputStream pipeOut = new PipedOutputStream(); PipedInputStream pipeIn = new PipedInputStream(pipeOut);,2019/5/16,93,PrintStream out = new PrintStream(pipeOut); new ReverseThread(out, in).start(); return pipeIn; public static InputStream sort(InputStream source) throws IOException DataInputStream in = new DataInputStream(source);,2019/5/16,94,PipedOutputStream pipeOut = new PipedOutputStream(); PipedInputStream pipeIn = new PipedInputStream(pipeOut); PrintStream out = new PrintStream(pipeOut); new SortThread(out, in).start(); return pipeIn; ,2019/5/16,95,class ReverseThread extends Thread private PrintStream out = null; private DataInputStream in = null; public ReverseThread(PrintStream out, DataInputStream in) this.out = out; this.in = in; ,2019/5/16,96,public void run() if (out != null ,2019/5/16,97,private String reverseIt(String source) int i, len = source.length(); StringBuffer dest = new StringBuffer(len); for (i = (le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 规范病案管理推进DRG付费
- 印品整饰工安全技能竞赛考核试卷含答案
- 冲印师岗前实操熟练考核试卷含答案
- 选煤干燥工班组管理考核试卷含答案
- 兽药检验员道德知识考核试卷含答案
- 社群健康助理员冲突解决模拟考核试卷含答案
- 烧结法溶出工操作能力竞赛考核试卷含答案
- 焊接设备操作工岗前基础应用考核试卷含答案
- 酿酒师标准化评优考核试卷含答案
- 玻璃制品模具工安全应急测试考核试卷含答案
- 武装押运考试题目及答案
- 党的二十届四中全会精神题库
- 杭州萧山交通投资集团有限公司Ⅱ类岗位招聘7人考试笔试模拟试题及答案解析
- 2025国务院发展研究中心有关直属事业单位第二轮招聘10人笔试题库附答案解析
- 2026年产品外观设计委托合同
- 2025年检验竞赛试题及答案
- 2025年教育信息化数字化校园管理系统建设实施方案
- 老年认知障碍患者精神药物不良反应方案
- GB/T 6540-2025石油产品颜色的测定
- 未来大学四年的规划
- 2025上半年事业单位联考《职业能力倾向测验》A类考试测试题(+答案)
评论
0/150
提交评论