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

Assignment Help:

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.

 


Related Discussions:- Streaming and decorator construction in java i/o

Define all the members of identified classes using java, A Mexican restaura...

A Mexican restaurant in London is struggling with preparing the meal ordered by it;s customer in time and has started loosing it;s business. The owner is looking at the possibility

What are adding methods, What are adding methods? A subclass isn't rest...

What are adding methods? A subclass isn't restricted to changing the behavior of its superclass. It can also add fully latest techniques and fields that are not shared along wi

Mobile pop-under script for mobile browsers, Project Description: Give a...

Project Description: Give a script that will produce a pop-under on a mobile landing page -We can host our own landing page and we will want to change the destination URL for

What is significance of jsf- spring integration, Spring - JSF integration i...

Spring - JSF integration is useful when an event handler wishes to explicitly invoke the bean factory to make beans on demand, such as a bean that encapsulates the business logic t

What are application softwares, What are application softwares? List down t...

What are application softwares? List down the names of three application software's. Definition: Application Software are in which software then can interact directory along

Project, How can i draw E-R diagram

How can i draw E-R diagram

Spring application support, JAVA, JSF(primefaces), SPRING Application Suppo...

JAVA, JSF(primefaces), SPRING Application Support Project Description: We require some one to be part of our team's new development , it's small application but in future, ch

What is heuristic, What is heuristic? Heuristic is a procedure which co...

What is heuristic? Heuristic is a procedure which commonly, but not always, works or that provides nearly the right answer.

How can you define a consistent web design, How can you define a consistent...

How can you define a consistent web design? Why is it needed? A consistent excellent designed website is generated for common public which permits users to attain what they nee

Develop contact list application, Develop Contact list application Proje...

Develop Contact list application Project Description: Prepare a computer application to help employees manage their contact list. Users must be able to store two kinds of con

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd