标签:style blog color io os ar java for sp
1 package test; 2 import java.io.*; 3 import java.nio.channels.FileChannel; 4 import java.util.*; 5 public class Test10_26 6 { 7 public static void main(String[] args) throws Exception 8 { 9 10 } 11 public static void method_delete() 12 { 13 File dir = new File("D:\\testdir\\111"); 14 removeDir(dir); 15 } 16 private static void removeDir(File dir) 17 { 18 File[] files = dir.listFiles(); 19 for (File f : files) 20 { 21 if (f.isDirectory()) 22 { 23 removeDir(f); 24 } 25 else 26 { 27 System.out.println(f.toString() + "-file-" + f.delete()); 28 ; 29 } 30 } 31 System.out.println(dir + "-dir-" + dir.delete()); 32 ; 33 } 34 public static void method_PrintWriter() throws IOException 35 { 36 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); 37 PrintWriter out = new PrintWriter(new FileWriter("d:/a.txt"), true); // 实时刷新好啊, 38 for (String line = null; (line = bufr.readLine()) != null;) 39 { 40 if ("over".equals(line)) 41 break; 42 System.out.println(line.toUpperCase()); 43 out.println(line.toUpperCase());// 不用操心 写不写 flush()了 44 } 45 bufr.close(); 46 out.close(); 47 } 48 public static void method_SequenceInputStream_ArrayList() throws IOException 49 { 50 ArrayList<InputStream> list = new ArrayList<InputStream>(); 51 File dir = new File("D:/splitfiles"); 52 for (int i = 0; i < 4; i++) 53 { 54 list.add(new FileInputStream(new File(dir, i + ".part"))); 55 } 56 final Iterator<InputStream> it = list.iterator(); 57 Enumeration<InputStream> en = new Enumeration<InputStream>() 58 { 59 public InputStream nextElement() 60 { 61 return it.next(); 62 } 63 public boolean hasMoreElements() 64 { 65 return it.hasNext(); 66 } 67 }; 68 SequenceInputStream sis = new SequenceInputStream(en); 69 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/splitfiles/1.mp4")); 70 int len = 0; 71 for (byte[] buf = new byte[1024 * 1024]; (len = sis.read(buf)) != -1;) 72 { 73 bos.write(buf, 0, len); 74 bos.flush(); 75 } 76 sis.close(); 77 bos.close(); 78 } 79 public static void method_splitfile() throws IOException 80 { 81 File file = new File("D:/222.mp4"); 82 FileInputStream fis = new FileInputStream(file); 83 FileOutputStream fos = null; 84 int len = 0; 85 int count = 0; 86 q: while (true) 87 { 88 File f = new File("D:/splitfiles/" + (count++) + ".part"); 89 fos = new FileOutputStream(f); 90 for (byte[] buf = new byte[1024 * 1024]; (len = fis.read(buf)) != -1;) 91 { 92 fos.write(buf, 0, len); 93 if (f.length() >= 1024 * 1024 * 200) 94 { 95 continue q; 96 } 97 } 98 break; 99 } 100 } 101 public static void method_ByteArrayOutputStream() throws Exception // 102 { 103 FileInputStream fis = new FileInputStream("D:/111.bmp"); 104 BufferedInputStream bis = new BufferedInputStream(fis); 105 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 106 for (int ch = 0; (ch = bis.read()) != -1;) 107 { 108 baos.write(ch); 109 } 110 bis.close(); 111 System.out.println(baos.size()); 112 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/111_copy.bmp")); 113 baos.writeTo(bos); // baos里一直存着图片, 优点!! 114 byte[] retArr = baos.toByteArray(); // 可以用ByteArrayInputStream 读取呀.笨 115 System.out.println(retArr.length); 116 } 117 public static void method_SequenceInputStream() throws Exception 118 { 119 Vector<InputStream> vector = new Vector<InputStream>(); 120 vector.add(new FileInputStream("D:/33.mp3")); 121 vector.add(new FileInputStream("D:/44.mp3")); 122 vector.add(new FileInputStream("D:/55.mp3")); 123 Enumeration<InputStream> et = vector.elements(); 124 SequenceInputStream sis = new SequenceInputStream(et); 125 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/66.mp3")); 126 int len = 0; 127 for (byte[] buf = new byte[1024 * 1024]; (len = sis.read(buf)) != -1;) 128 { 129 bos.write(buf, 0, len); 130 bos.flush(); 131 } 132 sis.close(); 133 bos.close(); 134 } 135 public static void method_FileChannel() throws Exception 136 { 137 FileChannel in = new FileInputStream("D:/171.bmp").getChannel(); 138 FileChannel out = new FileOutputStream("D:/171_copy.bmp").getChannel(); 139 out.transferFrom(in, 0, in.size()); 140 in.close(); 141 out.close(); 142 } 143 }
10.26的总结, 管道流用法, RandomAccessFile, DataStream 有待深入.
标签:style blog color io os ar java for sp
原文地址:http://www.cnblogs.com/stone1022/p/4052795.html