1 / 6

Chapter 10: Writing Files

Chapter 10: Writing Files. Basic Information. You can regard the file as a series of bytes with no specific information about its structure Common file extension give us some clues about the file internal structure Two Modes of accessing file: Sequential access Random access. File Channels.

elvin
Download Presentation

Chapter 10: Writing Files

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10: Writing Files

  2. Basic Information • You can regard the file as a series of bytes with no specific information about its structure • Common file extension give us some clues about the file internal structure • Two Modes of accessing file: • Sequential access • Random access

  3. File Channels • Why: They are very efficient, because they use OS buffers • A file channel object defines a channel for a physical file • You can create a file channel object using “fileOutputStream.getChannel()” • All the channel related classes and interfaces are found in java.nio.channels

  4. File Channels (Cont.) Your program File Stream Object Buffer Object Channel Object

  5. The Buffer Class • Almost all classes inherit from the Buffer class. They are found in java.nio • ByteBuffer is the only one used in I/O • Viewer Buffers as CharBuffer, Double, etc. • Buffer capacity, position, and limit {capacity(), position(), limit(), remaining(), hasRemaining()} • Buff.limit(512).position(256) • ByteBuffer buff = ByteBuffer.allocate(1024); • IntBuffer intBuf = buf.asIntBuffer(); • ByteBuffer buf = ByteBuffer.wrap(str.getBytes()); • Relative put/get and absolute put/get

  6. The Buffer Class (Cont) • Putting data relatively in a view buffer only update the position of the view buffer NOT the backing buffer • Write data to a file both position and limit should be set properly buf.limit(but.position()).position(0) = buf.flip(); • Ex: WriteAString.java • WriteAStringAsBytes.java • WriteProverbs.java • PrimesToFile.java & PrimeToFile2.java

More Related