输入输出

xiaoxiao2021-02-28  129

数据操作 java.io.RandomAccessFile     随机文件读取,可以跳过字符,随机读取,但是,正是因为这个原因,是他只能存储定值的数据 java.io.InputStream     文件读取的抽象父类,available 计算文件的大小   java.io.OutputStream         文件写入·的抽象父类 java.io.FileInputStream;     文件读取 java.io.FileOutputStream;     文件写入 以上都是字节流的操作 一下是字符流的操作     Reader 抽象类     Writer 抽象类 import java.io.FileReader;     可以将数据读入char[] 然后直接输出 import java.io.FileWriter;     可以直接操作字符 对于字节流,和字符流的不同 字节流,直接操作文件,字符流要先转入缓存再操作文件 对于字节流,不关闭,文件直接就可以写在文件上 但是,对于,字符流,如果不关闭,或者不刷新,数据不会更新在文件上, 所欲,必须关闭数据源 转换流 import java.io.InputStreamReader;、     将数据有字节转换温字符 (byte - > char) import java.io.OutputStreamWriter;     将数据有字符转换为字节  (char - > byte) OutputStream  FileoutputStream    | FileoutputStream FileWiter                              字符 《--》 字节   FileWiter 和 FileReader 并不是 Writer Reader 的子类 而是而是转换流的子类 inoutStream FileinputStream       |  FileinputStream Filereader Writer Input 内存操作流 import java.io.ByteArrayInputStream;     写入数据 import java.io.ByteArrayOutputStream;     输出数据     对于内存操作流数据,数据被分装,其他对于内存操作内数据不可获取(以前我还以为可以同通过FileWriter 直接把内存里面的数据直接flush 到文件,但是数据是分装的 不可访问)     该有对于这个数据的输入和输出 有点特别 不好记 管道流         PipedInputStream;         PrintStream          输入管道         PipedOutputStream;          输出管道          可以通过输出管道的connect 来连接输入管道 这可能是最原始的数据通信(自己查查API) 打印流     PrintWriter     字符     PrintStream     字节流     最方便的输出数据     但是必须关闭数据 Scanner       最方便的数据输入 对于数据的读取 还可以通过重定向         String path="C:\\Users\\Echo\\Desktop\\echoTest.txt";                 File file =new File(path);                 System.setIn(new FileInputStream(file));                 Scanner in= new Scanner(System.in);         System.out.println(in.nextLine()); ---------     String path="C:\\Users\\Echo\\Desktop\\echoTest.txt";                 File file =new File(path);                     Scanner in= new Scanner(file);         System.out.println(in.nextLine());          其实好像都差不多 BufferedReader     从缓冲数据读取     BufferedReader buf =new BufferedReader(new InputStreamReader(System.in)); 按照一定数据读取 DataOutputStream DataInputStream、 合并流数据 SequenceInputStream 数据压缩流     ZipOutputStream     eg:         File file =new File("C:\\Users\\Echo\\Desktop\\one.txt");         File zipfile =new File("C:\\Users\\Echo\\Desktop\\onezip.zip");                 InputStream input =new FileInputStream(file);                 ZipOutputStream ou =new ZipOutputStream(new FileOutputStream(zipfile));                 ou.putNextEntry(new ZipEntry(file.getName()));                             //加载实体         ou.setComment("echozip");                                                 //设置注释         byte [] temp = new byte[input.available()];                 input.read(temp);                 ou.write(temp);                                                             //对实体的内容的写入         input.close();         ou.close();     eg:         String info="F:\\echo";                 File files = new File(info);                 File file[] =files.listFiles();                 File zfile =new File(info+".zip");         InputStream input=null;         ZipOutputStream ou =new ZipOutputStream(new FileOutputStream(zfile));                 for(File f:file)         {                         input=new FileInputStream(f);                                     ou.putNextEntry(new ZipEntry(f.getName()));                             //加载实体             ou.setComment("echozip");                                                 //设置注释             byte [] temp = new byte[input.available()];                     input.read(temp);                     ou.write(temp);                                                        //对实体的内容的写入                     }                 input.close();         ou.close(); 解压文件     ZipFile      eg:         String info="C:\\Users\\Echo\\Desktop\\onezip.zip";         File outFile =new File("C:\\Users\\Echo\\Desktop\\onezip.txt");         ZipFile zip =new ZipFile(info);                 ZipEntry entry =zip.getEntry("two.txt");             InputStream input =zip.getInputStream(entry);                 OutputStream out= new FileOutputStream(outFile);                 byte [] temp =new byte[input.available()];                 input.read(temp);         out.write(temp); 获取Entry     eg:         String info="F:\\echo.zip";                         ZipInputStream zip=new ZipInputStream(new FileInputStream(info));         ZipEntry entry =null;         while((entry=zip.getNextEntry())!=null)         System.out.println(entry.getName());         配合使用ZipFile 回退流     PushbackInputStream
转载请注明原文地址: https://www.6miu.com/read-35409.html

最新回复(0)