1 29 30 package com.caucho.quercus.lib.file; 31 32 import com.caucho.vfs.Path; 33 import com.caucho.vfs.WriteStream; 34 35 import java.io.IOException ; 36 import java.util.logging.Level ; 37 import java.util.logging.Logger ; 38 39 42 public class FileWriteValue extends FileValue { 43 private static final Logger log 44 = Logger.getLogger(FileReadValue.class.getName()); 45 46 private WriteStream _os; 47 private long _offset; 48 49 public FileWriteValue(Path path) 50 throws IOException 51 { 52 super(path); 53 54 _os = path.openWrite(); 55 } 56 57 public FileWriteValue(Path path, boolean isAppend) 58 throws IOException 59 { 60 super(path); 61 62 if (isAppend) 63 _os = path.openAppend(); 64 else 65 _os = path.openWrite(); 66 } 67 68 71 public void print(char v) 72 throws IOException 73 { 74 if (_os != null) 75 _os.print(v); 76 } 77 78 81 public void print(String v) 82 throws IOException 83 { 84 if (_os != null) 85 _os.print(v); 86 } 87 88 91 public int write(byte []buffer, int offset, int length) 92 throws IOException 93 { 94 if (_os != null) { 95 _os.write(buffer, offset, length); 96 97 return length; 98 } 99 100 return 0; 101 } 102 103 106 public void flush() 107 { 108 try { 109 if (_os != null) 110 _os.flush(); 111 } catch (IOException e) { 112 log.log(Level.FINE, e.toString(), e); 113 } 114 } 115 116 117 120 public void close() 121 { 122 try { 123 WriteStream os = _os; 124 _os = null; 125 126 if (os != null) 127 os.close(); 128 } catch (IOException e) { 129 log.log(Level.FINE, e.toString(), e); 130 } 131 } 132 133 137 public String toString() 138 { 139 return "File[" + getPath() + "]"; 140 } 141 } 142 143 | Popular Tags |