1 package org.jicengine.io; 2 3 import java.io.*; 4 5 17 18 public abstract class AbstractResource implements Resource { 19 20 private String identifier; 21 private String mimeType; 22 23 26 protected AbstractResource(String identifier) 27 { 28 this.identifier = identifier; 29 } 30 31 public abstract InputStream getInputStream() throws IOException; 32 33 45 public Reader getReader() throws IOException 46 { 47 return new InputStreamReader(getInputStream()); 48 } 49 50 62 public boolean isAvailable() 63 { 64 try { 65 getInputStream(); 66 return true; 67 } catch (IOException e){ 68 return false; 69 } 70 } 71 72 public void writeTo(OutputStream out) throws IOException 73 { 74 InputStream in = getInputStream(); 75 int i; 76 while ((i = in.read()) != -1) { 77 out.write(i); 78 } 79 out.close(); 80 in.close(); 81 } 82 83 public void writeTo(Writer writer) throws IOException 84 { 85 Reader reader = getReader(); 86 BufferedReader buffReader; 87 if( reader instanceof BufferedReader ){ 88 buffReader = (BufferedReader) reader; 89 } 90 else { 91 buffReader = new BufferedReader(reader); 92 } 93 94 BufferedWriter buffWriter; 95 if( writer instanceof BufferedWriter ){ 96 buffWriter = (BufferedWriter) writer; 97 } 98 else { 99 buffWriter = new BufferedWriter(writer); 100 } 101 102 String line; 103 while ((line = buffReader.readLine()) != null) { 104 buffWriter.write(line); 105 buffWriter.write("\n"); 106 } 107 buffWriter.close(); 108 buffReader.close(); 109 } 110 111 public String getIdentifier() 112 { 113 return this.identifier; 114 } 115 116 public void setMimeType(String mimeType) 117 { 118 this.mimeType = mimeType; 119 } 120 121 124 public String getMimeType() 125 { 126 return this.mimeType; 127 } 128 129 public abstract Resource getResource(String relativePath) throws IOException; 130 131 134 public String toString() 135 { 136 return getIdentifier(); 137 } 138 } 139 | Popular Tags |