Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: sdk/lib/io/file.dart

Issue 16123036: Clean up dart:io exceptions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/io/directory_impl.dart ('k') | sdk/lib/io/file_impl.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart.io; 5 part of dart.io;
6 6
7 /** 7 /**
8 * FileMode describes the modes in which a file can be opened. 8 * FileMode describes the modes in which a file can be opened.
9 */ 9 */
10 class FileMode { 10 class FileMode {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 * existing file might fail if there are restrictive permissions on 53 * existing file might fail if there are restrictive permissions on
54 * the file. 54 * the file.
55 */ 55 */
56 Future<File> create(); 56 Future<File> create();
57 57
58 /** 58 /**
59 * Synchronously create the file. Existing files are left untouched 59 * Synchronously create the file. Existing files are left untouched
60 * by [createSync]. Calling [createSync] on an existing file might fail 60 * by [createSync]. Calling [createSync] on an existing file might fail
61 * if there are restrictive permissions on the file. 61 * if there are restrictive permissions on the file.
62 * 62 *
63 * Throws a [FileIOException] if the operation fails. 63 * Throws a [FileException] if the operation fails.
64 */ 64 */
65 void createSync(); 65 void createSync();
66 66
67 /** 67 /**
68 * Delete the file. Returns a [:Future<File>:] that completes with 68 * Delete the file. Returns a [:Future<File>:] that completes with
69 * the file when it has been deleted. Only a file or a link to a file 69 * the file when it has been deleted. Only a file or a link to a file
70 * can be deleted with this method, not a directory or a broken link. 70 * can be deleted with this method, not a directory or a broken link.
71 */ 71 */
72 Future<File> delete(); 72 Future<File> delete();
73 73
74 /** 74 /**
75 * Synchronously delete the file. Only a file or a link to a file 75 * Synchronously delete the file. Only a file or a link to a file
76 * can be deleted with this method, not a directory or a broken link. 76 * can be deleted with this method, not a directory or a broken link.
77 * 77 *
78 * Throws a [FileIOException] if the operation fails. 78 * Throws a [FileException] if the operation fails.
79 */ 79 */
80 void deleteSync(); 80 void deleteSync();
81 81
82 /** 82 /**
83 * Get a [Directory] object for the directory containing this 83 * Get a [Directory] object for the directory containing this
84 * file. 84 * file.
85 */ 85 */
86 Directory get directory; 86 Directory get directory;
87 87
88 /** 88 /**
89 * Get the length of the file. Returns a [:Future<int>:] that 89 * Get the length of the file. Returns a [:Future<int>:] that
90 * completes with the length in bytes. 90 * completes with the length in bytes.
91 */ 91 */
92 Future<int> length(); 92 Future<int> length();
93 93
94 /** 94 /**
95 * Synchronously get the length of the file. 95 * Synchronously get the length of the file.
96 * 96 *
97 * Throws a [FileIOException] if the operation fails. 97 * Throws a [FileException] if the operation fails.
98 */ 98 */
99 int lengthSync(); 99 int lengthSync();
100 100
101 /** 101 /**
102 * Get the last-modified time of the file. Returns a 102 * Get the last-modified time of the file. Returns a
103 * [:Future<DateTime>:] that completes with a [DateTime] object for the 103 * [:Future<DateTime>:] that completes with a [DateTime] object for the
104 * modification date. 104 * modification date.
105 */ 105 */
106 Future<DateTime> lastModified(); 106 Future<DateTime> lastModified();
107 107
108 /** 108 /**
109 * Get the last-modified time of the file. Throws an exception 109 * Get the last-modified time of the file. Throws an exception
110 * if the file does not exist. 110 * if the file does not exist.
111 * 111 *
112 * Throws a [FileIOException] if the operation fails. 112 * Throws a [FileException] if the operation fails.
113 */ 113 */
114 DateTime lastModifiedSync(); 114 DateTime lastModifiedSync();
115 115
116 /** 116 /**
117 * Open the file for random access operations. Returns a 117 * Open the file for random access operations. Returns a
118 * [:Future<RandomAccessFile>:] that completes with the opened 118 * [:Future<RandomAccessFile>:] that completes with the opened
119 * random access file. [RandomAccessFile]s must be closed using the 119 * random access file. [RandomAccessFile]s must be closed using the
120 * [RandomAccessFile.close] method. 120 * [RandomAccessFile.close] method.
121 * 121 *
122 * Files can be opened in three modes: 122 * Files can be opened in three modes:
(...skipping 10 matching lines...) Expand all
133 Future<RandomAccessFile> open({FileMode mode: FileMode.READ}); 133 Future<RandomAccessFile> open({FileMode mode: FileMode.READ});
134 134
135 /** 135 /**
136 * Synchronously open the file for random access operations. The 136 * Synchronously open the file for random access operations. The
137 * result is a [RandomAccessFile] on which random access operations 137 * result is a [RandomAccessFile] on which random access operations
138 * can be performed. Opened [RandomAccessFile]s must be closed using 138 * can be performed. Opened [RandomAccessFile]s must be closed using
139 * the [RandomAccessFile.close] method. 139 * the [RandomAccessFile.close] method.
140 * 140 *
141 * See [open] for information on the [mode] argument. 141 * See [open] for information on the [mode] argument.
142 * 142 *
143 * Throws a [FileIOException] if the operation fails. 143 * Throws a [FileException] if the operation fails.
144 */ 144 */
145 RandomAccessFile openSync({FileMode mode: FileMode.READ}); 145 RandomAccessFile openSync({FileMode mode: FileMode.READ});
146 146
147 /** 147 /**
148 * Get the canonical full path corresponding to the file path. 148 * Get the canonical full path corresponding to the file path.
149 * Returns a [:Future<String>:] that completes with the path. 149 * Returns a [:Future<String>:] that completes with the path.
150 */ 150 */
151 Future<String> fullPath(); 151 Future<String> fullPath();
152 152
153 /** 153 /**
154 * Synchronously get the canonical full path corresponding to the file path. 154 * Synchronously get the canonical full path corresponding to the file path.
155 * 155 *
156 * Throws a [FileIOException] if the operation fails. 156 * Throws a [FileException] if the operation fails.
157 */ 157 */
158 String fullPathSync(); 158 String fullPathSync();
159 159
160 /** 160 /**
161 * Create a new independent [Stream] for the contents of this file. 161 * Create a new independent [Stream] for the contents of this file.
162 * 162 *
163 * If [start] is present, the file will be read from byte-offset [start]. 163 * If [start] is present, the file will be read from byte-offset [start].
164 * Otherwise from the beginning (index 0). 164 * Otherwise from the beginning (index 0).
165 * 165 *
166 * If [end] is present, only up to byte-index [end] will be read. Otherwise, 166 * If [end] is present, only up to byte-index [end] will be read. Otherwise,
(...skipping 27 matching lines...) Expand all
194 /** 194 /**
195 * Read the entire file contents as a list of bytes. Returns a 195 * Read the entire file contents as a list of bytes. Returns a
196 * [:Future<List<int>>:] that completes with the list of bytes that 196 * [:Future<List<int>>:] that completes with the list of bytes that
197 * is the contents of the file. 197 * is the contents of the file.
198 */ 198 */
199 Future<List<int>> readAsBytes(); 199 Future<List<int>> readAsBytes();
200 200
201 /** 201 /**
202 * Synchronously read the entire file contents as a list of bytes. 202 * Synchronously read the entire file contents as a list of bytes.
203 * 203 *
204 * Throws a [FileIOException] if the operation fails. 204 * Throws a [FileException] if the operation fails.
205 */ 205 */
206 List<int> readAsBytesSync(); 206 List<int> readAsBytesSync();
207 207
208 /** 208 /**
209 * Read the entire file contents as a string using the given 209 * Read the entire file contents as a string using the given
210 * [Encoding]. 210 * [Encoding].
211 * 211 *
212 * Returns a [:Future<String>:] that completes with the string once 212 * Returns a [:Future<String>:] that completes with the string once
213 * the file contents has been read. 213 * the file contents has been read.
214 */ 214 */
215 Future<String> readAsString({Encoding encoding: Encoding.UTF_8}); 215 Future<String> readAsString({Encoding encoding: Encoding.UTF_8});
216 216
217 /** 217 /**
218 * Synchronously read the entire file contents as a string using the 218 * Synchronously read the entire file contents as a string using the
219 * given [Encoding]. 219 * given [Encoding].
220 * 220 *
221 * Throws a [FileIOException] if the operation fails. 221 * Throws a [FileException] if the operation fails.
222 */ 222 */
223 String readAsStringSync({Encoding encoding: Encoding.UTF_8}); 223 String readAsStringSync({Encoding encoding: Encoding.UTF_8});
224 224
225 /** 225 /**
226 * Read the entire file contents as lines of text using the given 226 * Read the entire file contents as lines of text using the given
227 * [Encoding]. 227 * [Encoding].
228 * 228 *
229 * Returns a [:Future<List<String>>:] that completes with the lines 229 * Returns a [:Future<List<String>>:] that completes with the lines
230 * once the file contents has been read. 230 * once the file contents has been read.
231 */ 231 */
232 Future<List<String>> readAsLines({Encoding encoding: Encoding.UTF_8}); 232 Future<List<String>> readAsLines({Encoding encoding: Encoding.UTF_8});
233 233
234 /** 234 /**
235 * Synchronously read the entire file contents as lines of text 235 * Synchronously read the entire file contents as lines of text
236 * using the given [Encoding]. 236 * using the given [Encoding].
237 * 237 *
238 * Throws a [FileIOException] if the operation fails. 238 * Throws a [FileException] if the operation fails.
239 */ 239 */
240 List<String> readAsLinesSync({Encoding encoding: Encoding.UTF_8}); 240 List<String> readAsLinesSync({Encoding encoding: Encoding.UTF_8});
241 241
242 /** 242 /**
243 * Write a list of bytes to a file. 243 * Write a list of bytes to a file.
244 * 244 *
245 * Opens the file, writes the list of bytes to it, and closes the file. 245 * Opens the file, writes the list of bytes to it, and closes the file.
246 * Returns a [:Future<File>:] that completes with this [File] object once 246 * Returns a [:Future<File>:] that completes with this [File] object once
247 * the entire operation has completed. 247 * the entire operation has completed.
248 * 248 *
249 * By default [writeAsBytes] creates the file for writing and truncates the 249 * By default [writeAsBytes] creates the file for writing and truncates the
250 * file if it already exists. In order to append the bytes to an existing 250 * file if it already exists. In order to append the bytes to an existing
251 * file, pass [FileMode.APPEND] as the optional mode parameter. 251 * file, pass [FileMode.APPEND] as the optional mode parameter.
252 */ 252 */
253 Future<File> writeAsBytes(List<int> bytes, {FileMode mode: FileMode.WRITE}); 253 Future<File> writeAsBytes(List<int> bytes, {FileMode mode: FileMode.WRITE});
254 254
255 /** 255 /**
256 * Synchronously write a list of bytes to a file. 256 * Synchronously write a list of bytes to a file.
257 * 257 *
258 * Opens the file, writes the list of bytes to it and closes the file. 258 * Opens the file, writes the list of bytes to it and closes the file.
259 * 259 *
260 * By default [writeAsBytesSync] creates the file for writing and truncates 260 * By default [writeAsBytesSync] creates the file for writing and truncates
261 * the file if it already exists. In order to append the bytes to an existing 261 * the file if it already exists. In order to append the bytes to an existing
262 * file, pass [FileMode.APPEND] as the optional mode parameter. 262 * file, pass [FileMode.APPEND] as the optional mode parameter.
263 * 263 *
264 * Throws a [FileIOException] if the operation fails. 264 * Throws a [FileException] if the operation fails.
265 */ 265 */
266 void writeAsBytesSync(List<int> bytes, {FileMode mode: FileMode.WRITE}); 266 void writeAsBytesSync(List<int> bytes, {FileMode mode: FileMode.WRITE});
267 267
268 /** 268 /**
269 * Write a string to a file. 269 * Write a string to a file.
270 * 270 *
271 * Opens the file, writes the string in the given encoding, and closes the 271 * Opens the file, writes the string in the given encoding, and closes the
272 * file. Returns a [:Future<File>:] that completes with this [File] object 272 * file. Returns a [:Future<File>:] that completes with this [File] object
273 * once the entire operation has completed. 273 * once the entire operation has completed.
274 * 274 *
275 * By default [writeAsString] creates the file for writing and truncates the 275 * By default [writeAsString] creates the file for writing and truncates the
276 * file if it already exists. In order to append the bytes to an existing 276 * file if it already exists. In order to append the bytes to an existing
277 * file, pass [FileMode.APPEND] as the optional mode parameter. 277 * file, pass [FileMode.APPEND] as the optional mode parameter.
278 */ 278 */
279 Future<File> writeAsString(String contents, 279 Future<File> writeAsString(String contents,
280 {FileMode mode: FileMode.WRITE, 280 {FileMode mode: FileMode.WRITE,
281 Encoding encoding: Encoding.UTF_8}); 281 Encoding encoding: Encoding.UTF_8});
282 282
283 /** 283 /**
284 * Synchronously write a string to a file. 284 * Synchronously write a string to a file.
285 * 285 *
286 * Opens the file, writes the string in the given encoding, and closes the 286 * Opens the file, writes the string in the given encoding, and closes the
287 * file. 287 * file.
288 * 288 *
289 * By default [writeAsStringSync] creates the file for writing and 289 * By default [writeAsStringSync] creates the file for writing and
290 * truncates the file if it already exists. In order to append the bytes 290 * truncates the file if it already exists. In order to append the bytes
291 * to an existing file, pass [FileMode.APPEND] as the optional mode 291 * to an existing file, pass [FileMode.APPEND] as the optional mode
292 * parameter. 292 * parameter.
293 * 293 *
294 * Throws a [FileIOException] if the operation fails. 294 * Throws a [FileException] if the operation fails.
295 */ 295 */
296 void writeAsStringSync(String contents, 296 void writeAsStringSync(String contents,
297 {FileMode mode: FileMode.WRITE, 297 {FileMode mode: FileMode.WRITE,
298 Encoding encoding: Encoding.UTF_8}); 298 Encoding encoding: Encoding.UTF_8});
299 299
300 /** 300 /**
301 * Get the path of the file. 301 * Get the path of the file.
302 */ 302 */
303 String get path; 303 String get path;
304 } 304 }
305 305
306 306
307 /** 307 /**
308 * [RandomAccessFile] provides random access to the data in a 308 * [RandomAccessFile] provides random access to the data in a
309 * file. [RandomAccessFile] objects are obtained by calling the 309 * file. [RandomAccessFile] objects are obtained by calling the
310 * [:open:] method on a [File] object. 310 * [:open:] method on a [File] object.
311 */ 311 */
312 abstract class RandomAccessFile { 312 abstract class RandomAccessFile {
313 /** 313 /**
314 * Closes the file. Returns a [:Future<RandomAccessFile>:] that 314 * Closes the file. Returns a [:Future<RandomAccessFile>:] that
315 * completes with this RandomAccessFile when it has been closed. 315 * completes with this RandomAccessFile when it has been closed.
316 */ 316 */
317 Future<RandomAccessFile> close(); 317 Future<RandomAccessFile> close();
318 318
319 /** 319 /**
320 * Synchronously closes the file. 320 * Synchronously closes the file.
321 * 321 *
322 * Throws a [FileIOException] if the operation fails. 322 * Throws a [FileException] if the operation fails.
323 */ 323 */
324 void closeSync(); 324 void closeSync();
325 325
326 /** 326 /**
327 * Reads a byte from the file. Returns a [:Future<int>:] that 327 * Reads a byte from the file. Returns a [:Future<int>:] that
328 * completes with the byte, or with -1 if end-of-file has been reached. 328 * completes with the byte, or with -1 if end-of-file has been reached.
329 */ 329 */
330 Future<int> readByte(); 330 Future<int> readByte();
331 331
332 /** 332 /**
333 * Synchronously reads a single byte from the file. If end-of-file 333 * Synchronously reads a single byte from the file. If end-of-file
334 * has been reached -1 is returned. 334 * has been reached -1 is returned.
335 * 335 *
336 * Throws a [FileIOException] if the operation fails. 336 * Throws a [FileException] if the operation fails.
337 */ 337 */
338 int readByteSync(); 338 int readByteSync();
339 339
340 /** 340 /**
341 * Reads [bytes] bytes from a file and returns the result as a list of bytes. 341 * Reads [bytes] bytes from a file and returns the result as a list of bytes.
342 */ 342 */
343 Future<List<int>> read(int bytes); 343 Future<List<int>> read(int bytes);
344 344
345 /** 345 /**
346 * Synchronously reads a maximum of [bytes] bytes from a file and 346 * Synchronously reads a maximum of [bytes] bytes from a file and
347 * returns the result in a list of bytes. 347 * returns the result in a list of bytes.
348 * 348 *
349 * Throws a [FileIOException] if the operation fails. 349 * Throws a [FileException] if the operation fails.
350 */ 350 */
351 List<int> readSync(int bytes); 351 List<int> readSync(int bytes);
352 352
353 /** 353 /**
354 * Reads into an existing List<int> from the file. If [start] is present, the 354 * Reads into an existing List<int> from the file. If [start] is present, the
355 * bytes will be filled into [buffer] from at index [start], otherwise index 355 * bytes will be filled into [buffer] from at index [start], otherwise index
356 * 0. If [end] is present, the [end] - [start] bytes will be read into 356 * 0. If [end] is present, the [end] - [start] bytes will be read into
357 * [buffer], otherwise up to [buffer.length]. If [end] == [start] nothing 357 * [buffer], otherwise up to [buffer.length]. If [end] == [start] nothing
358 * happends. 358 * happends.
359 * 359 *
360 * Returns a [:Future<int>:] that completes with the number of bytes read. 360 * Returns a [:Future<int>:] that completes with the number of bytes read.
361 */ 361 */
362 Future<int> readInto(List<int> buffer, [int start, int end]); 362 Future<int> readInto(List<int> buffer, [int start, int end]);
363 363
364 /** 364 /**
365 * Synchronously reads into an existing List<int> from the file. If [start] is 365 * Synchronously reads into an existing List<int> from the file. If [start] is
366 * present, the bytes will be filled into [buffer] from at index [start], 366 * present, the bytes will be filled into [buffer] from at index [start],
367 * otherwise index 0. If [end] is present, the [end] - [start] bytes will be 367 * otherwise index 0. If [end] is present, the [end] - [start] bytes will be
368 * read into [buffer], otherwise up to [buffer.length]. If [end] == [start] 368 * read into [buffer], otherwise up to [buffer.length]. If [end] == [start]
369 * nothing happends. 369 * nothing happends.
370 * 370 *
371 * Throws a [FileIOException] if the operation fails. 371 * Throws a [FileException] if the operation fails.
372 */ 372 */
373 int readIntoSync(List<int> buffer, [int start, int end]); 373 int readIntoSync(List<int> buffer, [int start, int end]);
374 374
375 /** 375 /**
376 * Writes a single byte to the file. Returns a 376 * Writes a single byte to the file. Returns a
377 * [:Future<RandomAccessFile>:] that completes with this 377 * [:Future<RandomAccessFile>:] that completes with this
378 * RandomAccessFile when the write completes. 378 * RandomAccessFile when the write completes.
379 */ 379 */
380 Future<RandomAccessFile> writeByte(int value); 380 Future<RandomAccessFile> writeByte(int value);
381 381
382 /** 382 /**
383 * Synchronously writes a single byte to the file. Returns the 383 * Synchronously writes a single byte to the file. Returns the
384 * number of bytes successfully written. 384 * number of bytes successfully written.
385 * 385 *
386 * Throws a [FileIOException] if the operation fails. 386 * Throws a [FileException] if the operation fails.
387 */ 387 */
388 int writeByteSync(int value); 388 int writeByteSync(int value);
389 389
390 /** 390 /**
391 * Writes from a [List<int>] to the file. It will read the buffer from index 391 * Writes from a [List<int>] to the file. It will read the buffer from index
392 * [start] to index [end]. If [start] is omitted, it'll start from index 0. 392 * [start] to index [end]. If [start] is omitted, it'll start from index 0.
393 * If [end] is omitted, it will write to end of [buffer]. 393 * If [end] is omitted, it will write to end of [buffer].
394 * 394 *
395 * Returns a [:Future<RandomAccessFile>:] that completes with this 395 * Returns a [:Future<RandomAccessFile>:] that completes with this
396 * [RandomAccessFile] when the write completes. 396 * [RandomAccessFile] when the write completes.
397 */ 397 */
398 Future<RandomAccessFile> writeFrom(List<int> buffer, [int start, int end]); 398 Future<RandomAccessFile> writeFrom(List<int> buffer, [int start, int end]);
399 399
400 /** 400 /**
401 * Synchronously writes from a [List<int>] to the file. It will read the 401 * Synchronously writes from a [List<int>] to the file. It will read the
402 * buffer from index [start] to index [end]. If [start] is omitted, it'll 402 * buffer from index [start] to index [end]. If [start] is omitted, it'll
403 * start from index 0. If [end] is omitted, it will write to the end of 403 * start from index 0. If [end] is omitted, it will write to the end of
404 * [buffer]. 404 * [buffer].
405 * 405 *
406 * Throws a [FileIOException] if the operation fails. 406 * Throws a [FileException] if the operation fails.
407 */ 407 */
408 void writeFromSync(List<int> buffer, [int start, int end]); 408 void writeFromSync(List<int> buffer, [int start, int end]);
409 409
410 /** 410 /**
411 * Writes a string to the file using the given [Encoding]. Returns a 411 * Writes a string to the file using the given [Encoding]. Returns a
412 * [:Future<RandomAccessFile>:] that completes with this 412 * [:Future<RandomAccessFile>:] that completes with this
413 * RandomAccessFile when the write completes. 413 * RandomAccessFile when the write completes.
414 */ 414 */
415 Future<RandomAccessFile> writeString(String string, 415 Future<RandomAccessFile> writeString(String string,
416 {Encoding encoding: Encoding.UTF_8}); 416 {Encoding encoding: Encoding.UTF_8});
417 417
418 /** 418 /**
419 * Synchronously writes a single string to the file using the given 419 * Synchronously writes a single string to the file using the given
420 * [Encoding]. 420 * [Encoding].
421 * 421 *
422 * Throws a [FileIOException] if the operation fails. 422 * Throws a [FileException] if the operation fails.
423 */ 423 */
424 void writeStringSync(String string, 424 void writeStringSync(String string,
425 {Encoding encoding: Encoding.UTF_8}); 425 {Encoding encoding: Encoding.UTF_8});
426 426
427 /** 427 /**
428 * Gets the current byte position in the file. Returns a 428 * Gets the current byte position in the file. Returns a
429 * [:Future<int>:] that completes with the position. 429 * [:Future<int>:] that completes with the position.
430 */ 430 */
431 Future<int> position(); 431 Future<int> position();
432 432
433 /** 433 /**
434 * Synchronously gets the current byte position in the file. 434 * Synchronously gets the current byte position in the file.
435 * 435 *
436 * Throws a [FileIOException] if the operation fails. 436 * Throws a [FileException] if the operation fails.
437 */ 437 */
438 int positionSync(); 438 int positionSync();
439 439
440 /** 440 /**
441 * Sets the byte position in the file. Returns a 441 * Sets the byte position in the file. Returns a
442 * [:Future<RandomAccessFile>:] that completes with this 442 * [:Future<RandomAccessFile>:] that completes with this
443 * RandomAccessFile when the position has been set. 443 * RandomAccessFile when the position has been set.
444 */ 444 */
445 Future<RandomAccessFile> setPosition(int position); 445 Future<RandomAccessFile> setPosition(int position);
446 446
447 /** 447 /**
448 * Synchronously sets the byte position in the file. 448 * Synchronously sets the byte position in the file.
449 * 449 *
450 * Throws a [FileIOException] if the operation fails. 450 * Throws a [FileException] if the operation fails.
451 */ 451 */
452 void setPositionSync(int position); 452 void setPositionSync(int position);
453 453
454 /** 454 /**
455 * Truncates (or extends) the file to [length] bytes. Returns a 455 * Truncates (or extends) the file to [length] bytes. Returns a
456 * [:Future<RandomAccessFile>:] that completes with this 456 * [:Future<RandomAccessFile>:] that completes with this
457 * RandomAccessFile when the truncation has been performed. 457 * RandomAccessFile when the truncation has been performed.
458 */ 458 */
459 Future<RandomAccessFile> truncate(int length); 459 Future<RandomAccessFile> truncate(int length);
460 460
461 /** 461 /**
462 * Synchronously truncates (or extends) the file to [length] bytes. 462 * Synchronously truncates (or extends) the file to [length] bytes.
463 * 463 *
464 * Throws a [FileIOException] if the operation fails. 464 * Throws a [FileException] if the operation fails.
465 */ 465 */
466 void truncateSync(int length); 466 void truncateSync(int length);
467 467
468 /** 468 /**
469 * Gets the length of the file. Returns a [:Future<int>:] that 469 * Gets the length of the file. Returns a [:Future<int>:] that
470 * completes with the length in bytes. 470 * completes with the length in bytes.
471 */ 471 */
472 Future<int> length(); 472 Future<int> length();
473 473
474 /** 474 /**
475 * Synchronously gets the length of the file. 475 * Synchronously gets the length of the file.
476 * 476 *
477 * Throws a [FileIOException] if the operation fails. 477 * Throws a [FileException] if the operation fails.
478 */ 478 */
479 int lengthSync(); 479 int lengthSync();
480 480
481 /** 481 /**
482 * Flushes the contents of the file to disk. Returns a 482 * Flushes the contents of the file to disk. Returns a
483 * [:Future<RandomAccessFile>:] that completes with this 483 * [:Future<RandomAccessFile>:] that completes with this
484 * RandomAccessFile when the flush operation completes. 484 * RandomAccessFile when the flush operation completes.
485 */ 485 */
486 Future<RandomAccessFile> flush(); 486 Future<RandomAccessFile> flush();
487 487
488 /** 488 /**
489 * Synchronously flushes the contents of the file to disk. 489 * Synchronously flushes the contents of the file to disk.
490 * 490 *
491 * Throws a [FileIOException] if the operation fails. 491 * Throws a [FileException] if the operation fails.
492 */ 492 */
493 void flushSync(); 493 void flushSync();
494 494
495 /** 495 /**
496 * Returns a human-readable string for this RandomAccessFile instance. 496 * Returns a human-readable string for this RandomAccessFile instance.
497 */ 497 */
498 String toString(); 498 String toString();
499 499
500 /** 500 /**
501 * Gets the path of the file underlying this RandomAccessFile. 501 * Gets the path of the file underlying this RandomAccessFile.
502 */ 502 */
503 String get path; 503 String get path;
504 } 504 }
505 505
506 506
507 class FileIOException implements Exception { 507 class FileException implements IOException {
508 const FileIOException([String this.message = "", 508 const FileException([String this.message = "",
509 OSError this.osError = null]); 509 OSError this.osError = null]);
510 String toString() { 510 String toString() {
511 StringBuffer sb = new StringBuffer(); 511 StringBuffer sb = new StringBuffer();
512 sb.write("FileIOException"); 512 sb.write("FileException");
513 if (!message.isEmpty) { 513 if (!message.isEmpty) {
514 sb.write(": $message"); 514 sb.write(": $message");
515 if (osError != null) { 515 if (osError != null) {
516 sb.write(" ($osError)"); 516 sb.write(" ($osError)");
517 } 517 }
518 } else if (osError != null) { 518 } else if (osError != null) {
519 sb.write(": osError"); 519 sb.write(": osError");
520 } 520 }
521 return sb.toString(); 521 return sb.toString();
522 } 522 }
523 final String message; 523 final String message;
524 final OSError osError; 524 final OSError osError;
525 } 525 }
OLDNEW
« no previous file with comments | « sdk/lib/io/directory_impl.dart ('k') | sdk/lib/io/file_impl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698