comparison src/goodjava/io/IoUtils.java @ 1509:0ba144491a42

lucene.backup zip
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 17 May 2020 14:29:33 -0600
parents 86c5e7000ecf
children f24a9ba7551e
comparison
equal deleted inserted replaced
1508:86c5e7000ecf 1509:0ba144491a42
1 package goodjava.io; 1 package goodjava.io;
2 2
3 import java.io.File; 3 import java.io.File;
4 import java.io.InputStream; 4 import java.io.InputStream;
5 import java.io.OutputStream; 5 import java.io.OutputStream;
6 import java.io.Reader;
7 import java.io.InputStreamReader;
8 import java.io.Writer;
9 import java.io.StringWriter;
6 import java.io.IOException; 10 import java.io.IOException;
7 import java.nio.file.Files; 11 import java.nio.file.Files;
8 import java.security.Security; 12 import java.security.Security;
9 import javax.net.ssl.SSLSocketFactory; 13 import javax.net.ssl.SSLSocketFactory;
10 import javax.net.ssl.SSLServerSocketFactory; 14 import javax.net.ssl.SSLServerSocketFactory;
15 import goodjava.logging.Logger;
16 import goodjava.logging.LoggerFactory;
11 17
12 18
13 public final class IoUtils { 19 public final class IoUtils {
20 private static final Logger logger = LoggerFactory.getLogger(IoUtils.class);
21
14 private IoUtils() {} // never 22 private IoUtils() {} // never
15 23
16 public static void move( File from, File to ) throws IOException { 24 public static void move( File from, File to ) throws IOException {
17 Files.move( from.toPath(), to.toPath() ); 25 Files.move( from.toPath(), to.toPath() );
18 } 26 }
55 out.write(a,0,n); 63 out.write(a,0,n);
56 } 64 }
57 in.close(); 65 in.close();
58 } 66 }
59 67
68 public static void copyAll(Reader in,Writer out)
69 throws IOException
70 {
71 char[] a = new char[8192];
72 int n;
73 while( (n=in.read(a)) != -1 ) {
74 out.write(a,0,n);
75 }
76 in.close();
77 }
78
79 public static String readAll(Reader in)
80 throws IOException
81 {
82 StringWriter sw = new StringWriter();
83 copyAll(in,sw);
84 return sw.toString();
85 }
86
60 public static long checksum(InputStream in) throws IOException { 87 public static long checksum(InputStream in) throws IOException {
61 long cs = 0; 88 long cs = 0;
62 int c; 89 int c;
63 while( (c=in.read()) != -1 ) { 90 while( (c=in.read()) != -1 ) {
64 cs = 31 * cs + c; 91 cs = 31 * cs + c;
65 } 92 }
66 in.close(); 93 in.close();
67 return cs; 94 return cs;
95 }
96
97
98
99 public static class ProcException extends IOException {
100 private ProcException(String msg) {
101 super(msg);
102 }
103 }
104
105 public static void waitFor(Process proc)
106 throws IOException, ProcException
107 {
108 try {
109 proc.waitFor();
110 } catch(InterruptedException e) {
111 throw new RuntimeException(e);
112 }
113 int exitVal = proc.exitValue();
114 if( exitVal != 0 ) {
115 StringWriter sw = new StringWriter();
116 copyAll( new InputStreamReader(proc.getInputStream()), sw );
117 copyAll( new InputStreamReader(proc.getErrorStream()), sw );
118 String error = sw.toString();
119 throw new ProcException(error);
120 }
68 } 121 }
69 122
70 123
71 static { 124 static {
72 // undo restrictions of modern scum 125 // undo restrictions of modern scum