10.26の総括、パイプフローの使用法、RandomAccessFile、DataStreamは深く入り込む必要がある.

20619 ワード

  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 }