Streaming and decorator construction in java i/o, JAVA Programming

Java output and input is described in terms of an abstract concept named a "stream", which is a sequence of data.

There are 2 types of streams.

1.      Byte streams (8 bit bytes)  Abstract classes are: OutputStream and InputStream

2. Character streams (16 bit UNICODE) Abstract classes are: Writer and Reader

 java.io.* classes need the decorator design pattern. The decorator design pattern added responsibilities to objects at runtime. Decorators are more reliable than inheritance because the inheritance added responsibility to classes at compile time. The java.io.* classes access the decorator pattern to construct different combinations of behavior at runtime based on some basic classes.

 

 The new I/O (NIO) offers better performance and better scalability?

 

Java has long been not suited for deploying programs that perform a lot of I/O functions. Furthermore, commonly needed tasks such as non-blocking, file locking and asynchronous I/O operations and ability to map file to memory were not require. Non-blocking I/O operations were found through work around such as multithreading or using JNI. The New I/O API in J2SE 1.4 has modified this situation.

A server's ability to handle several client requests effectively depends on how it performs I/O streams. When a server has to communicate hundreds of clients simultaneously, it has to be able to use I/O services frequently. One way to cater for this scenario in Java is to use threads but having almost one-to-one ratio of threads (100 clients will have 100 threads) is prone to enormous thread overhead and may give in scalability and performance problems due to consumption of memory stacks and CPU context switching. To overcome this situation, a new set of non-blocking I/O classes have been produced to the Java platform in java.nio package.

The non-blocking I/O mechanism is making around Channels and Selectors. Channels, Selectors and Buffers are the core of the NIO.

 

 

885_Untitled.png

 

A Channel class presents a bi-directional communication channel in between datasources such as a file, a socket, or an application component, which is capable of producing one or more I/O operations such as writing or reading. Channels may be non-blocking, which means, no I/O operation can wait for data to be written or read to the network. The nice thing about NIO channels is that they may be closed and asynchronously interrupted. So if a thread is blocked in an I/O operation on a channel, another thread may interrupt that blocked thread.

 

Posted Date: 7/25/2012 2:07:01 AM | Location : United States







Related Discussions:- Streaming and decorator construction in java i/o, Assignment Help, Ask Question on Streaming and decorator construction in java i/o, Get Answer, Expert's Help, Streaming and decorator construction in java i/o Discussions

Write discussion on Streaming and decorator construction in java i/o
Your posts are moderated
Related Questions
You are required to write a program that is going to be used to store the student details of a particular school.  This school caters for students aged between 5 years to 15 years.

public class ConcatDemo { public static void main(String[] args) { String animal1 = "quick brown fox"; String animal2 = "lazy dog"; String article = "the";

Using Java, write the class Time which consists of the following: (a) three private integer data members (hours, minutes and seconds). (b) a constructor to initialise the dat

Project Description: I want to create similar site: fifacointrader I want similar site like fifacointrader.com Skills required are HTML, Java, PHP, Website Design, Wordpre

The assignment is implementing a CLI in Java with several usable commands, using Threads.

Explain the Basic Applet Life Cycle ? 1. The browser reads the HTML page and seraches any tags. 2. The browser parses the tag to search the CODE and possibly CODEBASE att

What should be public? What should be private? As a rule of thumb: Classes are public. Fields are private. Constructors are public. Getter and setter methods

To change c code and place into a java application Project Description: To change c code and place into a java application Skills required are C Programming, Java, Softwar

A value, the data assigned to a variable, may contain any sort of data. Though, JavaScript considers data to fall into many possible types. Based on the type of data, certain opera

Sequence diagrams are communication diagrams which detail what messages are sent and when. The sequence diagrams are placed according to time. The time performs as you move from to