Java程序输出与输入.ppt_第1页
Java程序输出与输入.ppt_第2页
Java程序输出与输入.ppt_第3页
Java程序输出与输入.ppt_第4页
Java程序输出与输入.ppt_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

输 入 与 输 出,13.1 基本输入/输出流类 13.2 文件的输入/输出,13.1 基本输入/输出流类,流是数据的有序序列,它既可以是未加工的原始二进制数据,也可以是经过一定编码处理后的符合某种规定格式的特定数据,如字节流序列、字符流序列等。数据的性质、格式不同,则对流的处理方法也不同,因此,Java的输入/输出类库中有不同的流类来对应不同性质的输入/输出流。在java.io包中基本输入/输出流类可按读写数据的不同类型分为两种:字节流和字符流。,字节流用于读写字节类型的数据(包括ASCII表中的字符)。字节流类可分为表示输入流的InputStream类及其子类,表示输出流的OutputStream类及其子类。 字符流用于读写Unicode字符。它包括表示输入流的Reader类及其子类,表示输出流的Writer类及其子类。,13.1.1 InputStream类 InputStream类是用于读取字节型数据的输入流类,该类的继承及派生结构如下: java.lang.Object java.io.InputStream java.io.FileInputStream java.io.PipedInputStream java.io.ObjectInputStream java.io.SequenceInputStream java.io.ByteArrayInputStream,java.io.StringBufferInputStream java.io.FilterInputStream java.io.DataInputStream java.io.PushbackInputStream java.io.BufferedInputStream java.io.LineNumberInputStream,1InputStream类的成员方法,表13.1 InputStream类的成员方法,2DataInputStream类的成员方法 由于InputStream是抽象类,不能直接创建对象。程序中创建的输入流一般是InputStream类的某个子类的对象,由这个对象来实现与外设的连接。为此,下面介绍InputStream的子类DataInputStream类和BufferedInputStream类的使用方法。表13.2列出了DataInputStream类的成员方法。,表13.2 DataInputStream类的成员方法,表13.2 DataInputStream类的成员方法,表13.2 DataInputStream类的成员方法,表13.2 DataInputStream类的成员方法,【示例程序c13_1.java】 键盘输入数据的读取。 import java.io.*; public class c13_1 public static void main(String args ) int count; byte b = new byte256; String str; DataInputStream din = new DataInputStream(System.in); BufferedInputStream in = new BufferedInputStream(din); try ,if(in.markSupported( ) /判断当前输入流是否支持mark和reset方法 System.out.println(“支持mark“); System.out.print(“输入字符串,按Enter结束 “); in.mark(256); /在输入流的当前位置上设置标记,并保留256位 /读键盘输入的数据存入b数组,该方法返回实际读入的字节数给count count=in.read(b); System.out.println(“读入字符数: “ + count); str=new String(b,0,count); /将b数组转换为字符串 System.out.print(“输入的字符串为: “+str);,in.reset( ); /重新回到标记处读取数据 in.read(b,0,2); /读前两个字符 str=new String(b,0,2); System.out.println(“字符串的前两个: “+str); in.reset( ); in.skip(count/2); in.read(b,0,count/2); str=new String(b,0,count/2); System.out.println(“字符串的后半段: “+str); else System.out.println(“不支持mark“); ,din.close( ); in.close( ); catch(IOException E) System.out.println(“发生I/O错误!“); ,运行结果如下: 支持mark 输入字符串,按Enter结束 123456789 读入字符数:11 输入的字符串为: 123456789 字符串的前两个:12 字符串的后半段: 6789,DataInputStream类的构造方法中指定的参数“System.in”是InputStream类的对象,表示要从键盘上读入数据。BufferedInputStream类称为缓冲输入流,其作用是为流加上缓冲区。当缓冲输入流对象读入数据时,首先将一批数据从外部设备送入缓冲区,然后缓冲区流从缓冲区读数据,当缓冲区数据读完后再请求操作系统将数据成批送入缓冲区。有了缓冲区就可避免每读一个数据需要外部设备动作一次,从而提高了I/O的速度。BufferedInputStream类的构造方法中指定的参数是DataInputStream类的对象,这表示通过DataInputStream类的对象将键盘输入的数据输入到缓冲区中,然后,在程序中只需要用缓冲输入流对象的read( )方法便可得到数据。本程序可以不用创建DataInputStream类的对象,而只需在BufferedInputStream类的构造方法的参数中指定“System.in”,即可得到相同结果。,13.1.2 OutputStream类 OutputStream类是用于输出字节型数据的输出流类,该类的继承及派生结构如下: java.lang.Object java.io.OutputStream java.io.FileOutputStream java.io.PipedOutputStream java.io.ObjectOutputStream java.io.ByteArrayOutputStream java.io.FilterOutputStream java.io.PrintStream java.io.DataOutputStream java.io.BufferedOutputStream,1OutputStream类成员方法,表13.3 OutputStream类成员方法,2DataOutputStream类成员方法 由于OutputStream是抽象类,程序中创建的输出流对象隶属于OutputStream类的某个子类。表13.4列出了OutputStream的子类DataOutputStream类的成员方法。,表13.4 DataOutputStream类成员方法,表13.4 DataOutputStream类成员方法,【示例程序c13_2.java】 从键盘读入字符串写入屏幕。 import java.io.*; public class c13_2 public static void main(String args ) int count; byte b =new byte256; String str; BufferedInputStream in=new BufferedInputStream(System.in); /键盘读入 DataOutputStream stdout=new DataOutputStream(System.out); /屏幕输出,BufferedOutputStream out=new BufferedOutputStream(stdout); PrintStream p=new PrintStream(System.out); /屏幕输出 try if(in.markSupported( ) p.println(“支持mark“); /使用PrintStream输出到屏幕 p.print(“输入字符串,请按Enter结束 “); in.mark(256); count=in.read(b); p.println(“读入字符数: “ + count); p.print(“输入的字符串为: “);,/将数组b 中从0位置开始的count长度的字节写到缓冲流缓冲区中 out.write(b,0,count); out.flush( ); /将缓冲流缓冲区中的数据输出到屏幕上 else System.out.println(“不支持mark“); p.close( ); in.close( ); stdout.close( ); out.close( ); catch(IOException E) System.out.println(“发生I/O错误!“); ,运行结果如下: 支持mark 输入字符串,请按Enter结束 123456789 读入字符数:11 输入的字符串为: 123456789,BufferedInputStream类的构造方法中指定的参数“System.in”是InputStream类的对象,表示要从键盘上读入数据。,DataOutputStream类的构造方法中指定的参数“System.out”是OutputStream类的对象,表示向屏幕输出数据。BufferedOutputStream类称为缓冲输出流,其功能是为流加上缓冲区。在程序运行中,通过引用write( )方法不断地往缓冲区写数据,当缓冲区写满时或引用flush( )方法时,系统自动将缓冲输出流的数据写到输出流中(本程序是将数据写到屏幕上)。程序中BufferedOutputStream类的构造方法中指定的参数是DataOutputStream类的对象,这表示通过DataOutputStream类的对象将程序中需要输出的数据输出到缓冲流缓冲区中,最后通过引用缓冲输出流对象的flush( )方法便可方便地输出到屏幕上。,PrintStream类是打印输出流,Java的标准输出System.out是PrintStream类的对象,通过该对象引用print( )方法或println( )方法可向屏幕输出不同的数据。 【示例程序c13_3.java】 利用流PipedInputStream和 PipedOutputStream实现管道通信,利用流ByteArrayInputStream与 ByteArrayOutputStream实现存储器读/写。,import java.io.*; public class c13_3 public static void main(String args ) byte a1=25,a2=67;,byte b =I, ,L,O,V,E, ,J,A,V,A,! ; try PipedInputStream pin=new PipedInputStream( ); PipedOutputStream pout=new PipedOutputStream(pin); ByteArrayInputStream bin = new ByteArrayInputStream(b); ByteArrayOutputStream bout = new ByteArrayOutputStream( ); System.out.println(“PipedInputStream 和 PipedOutputStream“); System.out.println(“t将数据 “+a1+“ 送到 pout “); pout.write(a1); System.out.println(“t将数据 “+a2+“ 送到pout “); pout.write(a2);,System.out.println(“t由pin读入数据 “+(byte)pin.read( ); System.out.println(“t由pin读入数据 “+(byte)pin.read( ); int n=b.length; /获取缓冲区可读取的字节数 bin.skip(n/2); /使读操作指针位于字节流的中间位置 int m; while(bin.available( )0) /将b读入ByteArrayOutputStream中 bout.write(bin.read( ); System.out.print(“读写一半的数据 “); bout.writeTo(System.out); /输出到屏幕上 bin.reset( ); /设读操作指针到流的开头 bout.reset( ); /设写操作指针到流的开头,m=b.length; byte rb =new bytem; bin.read(rb,0,10); /从数据流取10个字节放入数组rb bout.write(rb,0,10); /将数组rb 从0开始的10个字节写到输出流 System.out.println(“n输出读/写所有数据“+bout.toString( ); catch(Exception e) System.out.println(“发生I/O错误!“); ,运行结果如下: PipedInputStream 和 PipedOutputStream 将数据 25 送到 pout 将数据 57 送到 pout 由pin读入数据 25 由pin读入数据 67 读写一半的数据 JAVA! 输出读/写所有数据 I LOVE JAVA,PipedInputStream类和 PipedOutputStream类可用于两个不同线程之间的管道通信。本程序中创建了PipedInputStream类的对象pin和 PipedOutputStream类的对象pout,并使pin和pout建立连接,这样就可以通过pout.write(a1)把a1数据写入管道,再利用pin.read( )去读管道的数据,从而完成管道通信。 ByteArrayInputStream类和 ByteArrayOutputStream类用于字节数组的输入输出。程序中创建了ByteArrayInputStream类的对象bin、ByteArrayOutputStream类的对象bout作为读/写操作的输入流和输出流,并使输入流和数组b 相连接,这样bin可以从内存中的字节数组输入,bout可以向内存中的字节数组输出,从而实现存储器的读/写操作。,13.1.3 Reader类和Writer类 与用于读写字节流的InputStream类和OutputStream类相对应,Java还提供了用于读写Unicode字符的字符流的Reader类和Writer类。Reader类和Writer类的继承结构如下: java.lang.Object java.io.Reader java.io.PipedReader java.io.StringReader java.io.FilterReader java.io.PushbackReader,java.io.BufferedReader java.io.LineNumberReader java.io.CharArrayReader java.io.InputStreamReader java.io.FileReader java.lang.Object java.io.Writer java.io.PipedWriter java.io.PrintWriter java.io.FilterWriter java.io.StringWriter java.io.BufferedWriter java.io.CharArrayWriter java.io.OutputStreamWriter java.io.FileWriter,表13.5和表13.6分别列出了Reader类和Writer类的常用成员方法。需要注意的是:由于Reader类和Writer类是抽象类,所以程序中创建的输入流或输出流应该是Reader类的某个子类的对象或Writer类的某个子类的对象,由这些对象来实现与外设的连接。,表135 Reader类的常用成方法,表13.6 Writer类的常用成员方法,【示例程序c13_4.java】 利用InputStreamReader类、BufferedReader类、OutputStreamWriter类实现从键盘输入字符串,再输出到屏幕上。利用CharArrayReader类、CharArrayWriter类实现存储器读/写操作。 import java.io.*; public class c13_4 public static void main(String args ) char c1 ,c2 ,temp; String str; CharArrayReader cin; CharArrayWriter cout;,InputStreamReader sin=new InputStreamReader(System.in); /键盘输入 BufferedReader in=new BufferedReader(sin); OutputStreamWriter out=new OutputStreamWriter(System.out); /屏幕输出 try System.out.print(“请输入一个字符串,请按Enter结束 “); str=in.readLine( ); /读入字符串 c1=str.toCharArray( ); /将字符串转换成字符数组 cin=new CharArrayReader(c1); cout=new CharArrayWriter( ); while(cin.ready( ) /写入c1的内容到CharArrayWriter中, cout.write(cin.read( ); System.out.print(“c2=“); c2=cout.toCharArray( ); /将CharArrayWriter的内容输出到c2中 System.out.print(new String(c2); System.out.print(“n直接由CharArray输出: “); cout.writeTo(out); /输出到OutputStreamWriter out.flush( ); /OutputStreamWriter强制输出到屏幕 catch(IOException E) System.out.println(“I/O错误!“); ,运行结果如下: 请输入一个字符串,请按Enter结束 12345abc c2=12345abc 直接由CharArray输出: 12345abc,从程序中可以看到CharArrayReader/CharArrayWriter类和ByteArrayInputStream/ByteArrayOutputStream类非常相似,不同之处是CharArrayWriter类的writeTo( )方法不能直接将结果输出到屏幕上,所以要借助于OutputStreamWriter类来完成。,InputStreamReader类是从字节流到字符流的转换器,程序中sin=new InputStreamReader (System.in)表示以标准输入字节为基础创建字符输入流对象。BufferedReader类是具有缓冲功能的字符输入流类,将sin封装在BufferedReader流中可提高输入的效率。OutputStreamWriter类是字符流到字节流的桥梁,它的方法可以将字符转换为字节再写入字节流,从而实现屏幕输出。,13.2 文件的输入/输出,13.2.1 File类 Java语言的java.io包中的File类是专门用来管理磁盘文件和目录的。每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息,如文件或目录的名称、文件的长度、目录中所含文件的个数等。调用File类的方法则可以完成对文件或目录的常用管理操作,如创建文件或目录、删除文件或目录、查看文件的有关信息等。,java.io.File 类的父类是java.lang.Object。用于创建File类对象的构造方法有三个,它们分别是: public File(String path); /使用指定路径构造一个File对象 public File(String path,String name); /使用指定路径和字符串构造一个File对象 public File(File dir,String name,); /使用指定文件目录和字符串构造一个File对象,表13.7 File类成员方法,表13.7 File类成员方法,public String list(Filename filter),获取在文件指定的目录中并满足指定过滤器的文件列表,表13.7 File类成员方法,【示例程序c13_5.java】 获取文件的文件名、长度、大小等特性。 import java.io.*; import java.util.*; public class c13_5 public static void main(String args ) String Path; InputStreamReader din=new InputStreamReader(System.in); /键盘输入 BufferedReader in=new BufferedReader(din); try,System.out.print(“请输入相对或绝对路径: “); Path=in.readLine( ); /读取输入 File f = new File(Path); System.out.println(“路径: “+f.getParent( ); System.out.println(“档案: “+f.getName( ); System.out.println(“绝对路径: “+f.getAbsolutePath( ); System.out.println(“文件大小: “+f.length( ); System.out.println(“是否为文件: “+(f.isFile( )?“是“:“否“); System.out.println(“是否为目录: “+(f.isDirectory( )?“是“:“否“);,System.out.println(“是否为隐藏: “+(f.isHidden( )?“是“:“否“); System.out.println(“是否可读取: “+(f.canRead( )?“是“:“否“); System.out.println(“是否可写入: “+(f.canWrite( )?“是“:“否“); System.out.println(“最后修改时间: “+new Date(f.lastModified( ); catch(IOException E) System.out.println(“I/O错误!“); ,运行结果如下: 请输入相对或绝对路径: c13_4.java 路径: null 档案: c13_4.java 绝对路径: d:zbych13c13_4.java 文件大小: 1247 是否为文件: 是 是否为目录: 否 是否为隐藏: 否 是否可读取: 是 是否可写入: 是 最后修改时间: Thu Jul 25 10:41:44 CST 2002,【示例程序c13_6.java】 实现DOS的部分dir功能。 import java.io.*; import java.util.*; public class c13_6 public static void main(String args ) File ListFile ; long totalSize=0; int FileCount=0,DirectoryCount=0; if(args.length != 1) /由命令行参数读入路径 System.out.println(“java c13_6 “); return; ,File f=new File(args0); /生成File对象 System.out.println(“目录: “+f.getParent( )+“n“); if(f.exists( ) != true) /若文件不存在则结束程序 System.out.println(f.getPath( )+“不存在!“); return; if(f.isDirectory( ) /若路径为目录时 ListFile=f.listFiles( ); /取得文件列表 for(int i=0;iListFile.length;i+) System.out.print(ListFilei.isDirectory( )?“D“:“X“) + “ “); System.out.print(new Date(ListFilei.lastModified( ) + “ “);,System.out.print(ListFilei.length( ) + “ “); System.out.print(ListFilei.getName( ) + “n“); if(ListFilei.isFile( )FileCount+; /计算文件数 else DirectoryCount+; /计算目录数 totalSize =totalSize+ListFilei.length( ); /计算文件大小总和 System.out.println(“ntt目录数: “+DirectoryCount); System.out.println(“tt文件数: “+FileCount); System.out.println(“tt总字节: “+totalSize); ,else /路径为文件时 System.out.print(f.isDirectory( )?“D“:“X“)+“ “); System.out.print(new Date(f.lastModified( )+“ “); System.out.print(f.length( )+“ “); System.out.print(f.getName( )+“n“); FileCount+; totalSize=totalSize+f.length( ); System.out.println(“ntt目录数: “+DirectoryCount); System.out.println(“tt文件数: “+FileCount); System.out.println(“tt总字节: “+totalSize); 运行时请键入“java c13_6 c:”即可看到c:下的文件及目录。,13.2.2 FileInputStream类和FileOutputStream类 在程序中,经常会用到文件的读/写操作。例如,从已经存在的数据文件中读入数据,或者将程序中产生的大量数据写入磁盘文件中。这时就需要使用文件输入/输出流类。Java系统提供的FileInputStream类是用于读取文件中的字节数据的字节文件输入流类;FileOutputStream类是用于向文件写入字节数据的字节文件输出流。表13.8列出了FileInputStream类和FileOutputStream类的构造方法,表13.9列出了这两个类的常用成员方法。,表13.8 FileInputStream类和FileOutputStream类的构造方法,表13.9 FileInputStream类和FileOutputStream类的成员方法,13.2.3 字节文件输入/输出流的读写 利用字节文件输入/输出流完成磁盘文件的读写,首先要利用文件名字符串或File对象创建输入/输出流对象,其次是从文件输入/输出流中读写数据。从文件输入/输出流中读写数据有以下两种方式。 1用文件输入/输出类自身的读写功能完成文件的读写操作 FileInputStream类和FileOutputStream类自身的读写功能是直接从父类InputStream和OutputStream那里继承来的,并未做任何功能的扩充。如前面介绍过的read( ),write( )等方法,都只能完成以字节为单位的原始二进制数据的读写。,2配合其他功能较强的输入/输出流完成文件的读写操作 以FileInputStream和FileOutputStream为数据源,完成与磁盘文件的映射连接后,再创建其他流类的对象,如DataInputStream类和DataOutputStream类,这样就可以从FileInputStream和FileOutputStream对象中读写数据。利用DataInputStream类和DataOutputStream类提供的成员方法(见表13.2和表13.4)可以方便地从文件中读写不同类型的数据。其使用方式如下: File fnew File(“TextFile“); DataInputStream dinnew DataInputStream(new FileInputStream(f); DataOutputStream doutnew DataOutputStream(new FileOutputStream(f);,【示例程序c13_7.java】 直接利用FileInputStream类和FileOutputStream类完成从键盘读入数据写入文件中,再从写入的文件中读出数据打印到屏幕上的操作。 import java.io.*; public class c13_7 public static void main(String args) char c; int c1; File filePath=new File(“temp“); /在当前目录下建目录,也可用绝对目录,if(!filePath.exists( )filePath.mkdir( ); /若目录不存在,则建之 File fl=new File(filePath,“d1.txt“); /在指定目录下建文件类对象 try FileOutputStream fout=new FileOutputStream(fl); System.out.println(“请输入字符,输入结束按# :“); while(c=(char)System.in.read( )!=#) /键盘输入字符写到磁盘文件 fout.write(c); fout.close( ); / System.out.println(“n打印从磁盘读入的数据“);,FileInputStream fin=new FileInputStream(fl); while(c1=fin.read( )!=-1) /磁盘文件读入程序 System.out.print(char)c1); /打印从磁盘读入的数据到屏幕上 fin.close( ); /try结束 catch(FileNotFoundException e) System.err.println(e); catch(IOException e) System.err.println(e); /main( )结束 /class c13_7结束,运行结果如下: 请输入字符,输入结束按#: 12345 abcd# 打印从磁盘读入的数据 12345 abcd#,【示例程序c13_8.java】 用FileInputStream和FileOutputStream输入输出流,再套接上DataInputStream类和DataOutputStream类输入输出流完成文件的读写操作。 import java.io.*; public class c13_8 public static void main(String args ) boolean lo=true; short si=-32768;,int i=65534; long l=134567; float f=(float)1.4567; double d=3 String str1=“ABCD“; String str2=“Java语言教学“; try FileOutputStream fout=new FileOutputStream(“t1.txt“); DataOutputStream out=new DataOutputStream(fout); /文件输出流对象为参数 FileInputStream fin=new FileInputStream(“t1.txt“); DataInputStream in=new DataInputStream(fin); /文件输入流对象为参数,out.writeBoolean(lo); out.writeShort(si); out.writeByte(i); out.writeInt(i); out.writeLong(l); out.writeFloat(f); out.writeDouble(d); out.writeBytes(str1); out.writeUTF(str2); out.close( ); System.out.println(“Blooean lo=“+in.readBoolean( ); System.out.println(“Short si=“+in.readShort( ); System.out.println(“Byte i=“+in.readByte( ); System.out.println(“Int i=“+in.readInt( ); System.out.println(“Long l=“+in.readLong( ); System.out.println(“Float f=“+in.readFloat( ); System.out.println(“Double d=“+in.readDouble( );,byte b =new byte4; in.readFully(b); System.out.print(“str1=“); for(int j=0;j4;j+)System.out.print(char)bj); System.out.println( ); System.out.println(“str2=“+in.readUTF( ); in.close( ); catch(IOException E) System.out.println(E.toString( ); ,运行结果如下: Boolean lo=true Short si=-32768 Byte i=-2 Int i=65534 Long l=134567 Float f=(float)1.4567 Double d=3str1=ABCD str2=Java语言教学,13.2.4 FileReader类和FileWriter类,表13.10 FileReader类和FileWriter类的构造方法,【示例程序c13_9.java】 复制文件。 import java.io.*; public class c13_9 public static void main(String args ) String temp; File sourceFile,targetFile; /创建File对象 BufferedReader source; BufferedWriter target; try ,InputStreamReader din = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(din); System.out.print(“请输入来源文件路径: “); sourceFile = new File(in.readLine( ); source = new BufferedReader(new FileReader(sourceFile); / System.out.print(“请输入目的文件路径: “); targetFile = new File(in.readLine( ); target = new BufferedWriter(new FileWriter(targetFile); System.out.print(“确定要复制?(y/n) “); if(in.readLine( ).equals(“y“) while(temp=source.readLine( ) != null), target.write(temp); target.newLine( ); target.flush( ); System.out.println(“复制文件完成!“); else System.out.println(“复制文件失败!“); return; din.close( ); in.close( ); ,catch(IOException E) System.out.println(“I/O错误!“); ,运行结果: 请输入来源文件路径: d:zbyt1.txt 请输入目的文件路径: t2.txt 确定要复制?(y/n) y 复制文件完成! 结果是将t1.txt复制到t2.txt中。程序中使用FileReader类输入流套接BufferedReader类缓冲区输入流、FileWriter类输出流套接BufferedWriter类缓冲区输出流的策略,加快了复制文件的速度。,13.2.5 RandomAccessFile类 前面介绍的文件存取方式属于顺序存取,即只能从文件的起始位置向后顺序读写。java.io包提供的RandomAccessFile类是随机文件访问类, 该类的对象可以引用与文件位置指针有关的成员方法,读写任意位置的数据,实现对文件的随机读写操作。文件的随机存取要比顺序存取更加灵活。,1. java.io.RandomAccessFile类的构造方法 java.io.RandomAccessFile类的构造方法有两种: (1) RandomAccessFile(String name,String mode) 使用指定的字符串和模式参数创建一个RandomAccessFile类对象。 (2) RandomAccessFile(File f,String mode) 使用指定的文件对象和模式参数创建一个RandomAccessFile类对象。,在RandomAccessFile类的构造方法中,除了指定文件的路径外,还必须指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论