Working with Files and I/O in Java

Working with Files and I/O in Java

The java.nio package contains the types required to perform input output operations in Java. The introduction of the java.nio package has simplified input — output operations. This article presents a discussion on how to perform input — output operations in Java with special focus on the java.nio package.

When you work with files for I/O, you basically work with streams. A stream may be defined as a sequence of bytes. There are two types of streams. These include: input stream and output stream. While the former is used to read data from a source, the latter is used to write data to a destination.

The Java NIO Package

Input/output operations in Java have been simplified and made non-blocking with the new java.nio.file API. The java.nio package comprises a collection of types that provide support for non-blocking I/O in Java. Incidentally, the Java NIO package was introduced with J2SE 1.4 in 2002. Note that the java.nio package provides support for implementing high-speed input-output sans the need of writing custom native code.

When working with enterprise applications, you might want to be notified when a file is updated or uploaded to a destination. The Java NIO API provides excellent support for change notification and change detection to handle such situations.

The Java NIO API comprises of the following:

  • Buffers – this represents a chunk of memory into which data can be written to read the data back at a later point of time if needed.
  • Charsets – these are comprised of encoders and decoders
  • Selectors – these provide support for multiplexed non-blocking I/O. A Selector is responsible for enabling a thread to select the appropriate Channel from amongst the list of registered Channels.
  • Channels – these represent a medium that can be used to transport data between the byte buffers and entities. Each source of data is mapped using an appropriate Channel. Typical examples of channels include: FileChannel, AsynchronousFileChannel, AsynchronousSocketChannel, etc.

You can learn more about the Java NIO API here.

Why do we need non-blocking I/O?

Let’s now understand why we need non-blocking I/O, or, why it is helpful. In blocking I/O, when you perform a read or a write operation, the worker thread is blocked until the input – output operation is complete. In other words, the worker thread is blocked until the read or write operation completes. On the contrary, in non-blocking I/O, your program doesn’t have to wait until the I/O is complete. In essence, the program continues to execute without having to block and wait till the I/O is complete. This boosts the application’s responsiveness and performance.

Here’s how non-blocking I/O in the java.nio package works. The I/O operation executes in parallel using another thread while the calling thread continues to execute its instructions.

Programming the java.nio package

In this section, we will explore how to program the java.nio package to read and write data. The following piece of code shows how you can write data using the java.nio package. Note how the Charset class has been used with UTF-8 encoding to specify the encoding to be used.

public static void main(String[] args) {        BufferedWriter bufferedWriter  = null;        try{            Path file = Files.createFile(Paths.get("C:\sample.txt"));            String text = "This is a test";             bufferedWriter = Files.newBufferedWriter(file, Charset.forName("UTF-8"));            bufferedWriter.write(text, 0, text.length());         }catch(IOException e){            e.printStackTrace();        }finally{            try {                bufferedWriter.close();            } catch (IOException x) {                x.printStackTrace();            }        }     }

The instance of the BufferedWriter is closed in the final block. The appropriate exception handling mechanism is incorporated to handle any runtime errors. The Files class contains a list of static methods that you can use to work with files, directories, etc.

Here’s the complete code listing for your reference.

import java.io.BufferedWriter;import java.io.IOException;import java.nio.charset.Charset;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;public class ProgrammingNIO {    public static void main(String[] args) {        BufferedWriter bufferedWriter  = null;        try{            Path file = Files.createFile(Paths.get("C:\sample.txt"));            String text = "This is a test";             bufferedWriter = Files.newBufferedWriter(file, Charset.forName("UTF-8"));            bufferedWriter.write("This is a test", 0, text.length());         }catch(IOException e){            e.printStackTrace();        }finally{            try {                bufferedWriter.close();            } catch (IOException x) {                x.printStackTrace();            }        }     }}

If you were to read the contents of a file, you would have to use the BufferedReader class. The following code snippet illustrates how it can be achieved.

InputStream stream = Files.newInputStream(file);bufferedReader = new BufferedReader(new InputStreamReader(stream));System.out.println(bufferedReader.readLine());
devx-admin

devx-admin

Share the Post:
AI Girlfriend Craze

AI Girlfriend Craze Threatens Relationships

The surge in virtual AI girlfriends’ popularity is playing a role in the escalating issue of loneliness among young males, and this could have serious

AIOps Innovations

Senser is Changing AIOps

Senser, an AIOps platform based in Tel Aviv, has introduced its groundbreaking AI-powered observability solution to support developers and operations teams in promptly pinpointing the

Malyasian Networks

Malaysia’s Dual 5G Network Growth

On Wednesday, Malaysia’s Prime Minister Anwar Ibrahim announced the country’s plan to implement a dual 5G network strategy. This move is designed to achieve a

Advanced Drones Race

Pentagon’s Bold Race for Advanced Drones

The Pentagon has recently unveiled its ambitious strategy to acquire thousands of sophisticated drones within the next two years. This decision comes in response to

Important Updates

You Need to See the New Microsoft Updates

Microsoft has recently announced a series of new features and updates across their applications, including Outlook, Microsoft Teams, and SharePoint. These new developments are centered

AI Girlfriend Craze

AI Girlfriend Craze Threatens Relationships

The surge in virtual AI girlfriends’ popularity is playing a role in the escalating issue of loneliness among young males, and this could have serious repercussions for America’s future. A

AIOps Innovations

Senser is Changing AIOps

Senser, an AIOps platform based in Tel Aviv, has introduced its groundbreaking AI-powered observability solution to support developers and operations teams in promptly pinpointing the root causes of service disruptions

Bebop Charging Stations

Check Out The New Bebob Battery Charging Stations

Bebob has introduced new 4- and 8-channel battery charging stations primarily aimed at rental companies, providing a convenient solution for clients with a large quantity of batteries. These wall-mountable and

Malyasian Networks

Malaysia’s Dual 5G Network Growth

On Wednesday, Malaysia’s Prime Minister Anwar Ibrahim announced the country’s plan to implement a dual 5G network strategy. This move is designed to achieve a more equitable incorporation of both

Advanced Drones Race

Pentagon’s Bold Race for Advanced Drones

The Pentagon has recently unveiled its ambitious strategy to acquire thousands of sophisticated drones within the next two years. This decision comes in response to Russia’s rapid utilization of airborne

Important Updates

You Need to See the New Microsoft Updates

Microsoft has recently announced a series of new features and updates across their applications, including Outlook, Microsoft Teams, and SharePoint. These new developments are centered around improving user experience, streamlining

Price Wars

Inside Hyundai and Kia’s Price Wars

South Korean automakers Hyundai and Kia are cutting the prices on a number of their electric vehicles (EVs) in response to growing price competition within the South Korean market. Many

Solar Frenzy Surprises

Solar Subsidy in Germany Causes Frenzy

In a shocking turn of events, the German national KfW bank was forced to discontinue its home solar power subsidy program for charging electric vehicles (EVs) after just one day,

Electric Spare

Electric Cars Ditch Spare Tires for Efficiency

Ira Newlander from West Los Angeles is thinking about trading in his old Ford Explorer for a contemporary hybrid or electric vehicle. However, he has observed that the majority of

Solar Geoengineering Impacts

Unraveling Solar Geoengineering’s Hidden Impacts

As we continue to face the repercussions of climate change, scientists and experts seek innovative ways to mitigate its impacts. Solar geoengineering (SG), a technique involving the distribution of aerosols

Razer Discount

Unbelievable Razer Blade 17 Discount

On September 24, 2023, it was reported that Razer, a popular brand in the premium gaming laptop industry, is offering an exceptional deal on their Razer Blade 17 model. Typically

Innovation Ignition

New Fintech Innovation Ignites Change

The fintech sector continues to attract substantial interest, as demonstrated by a dedicated fintech stage at a recent event featuring panel discussions and informal conversations with industry professionals. The gathering,

Import Easing

Easing Import Rules for Big Tech

India has chosen to ease its proposed restrictions on imports of laptops, tablets, and other IT hardware, allowing manufacturers like Apple Inc., HP Inc., and Dell Technologies Inc. more time

Semiconductor Stock Plummet

Dramatic Downturn in Semiconductor Stocks Looms

Recent events show that the S&P Semiconductors Select Industry Index seems to be experiencing a downturn, which could result in a decline in semiconductor stocks. Known as a key indicator

Anthropic Investment

Amazon’s Bold Anthropic Investment

On Monday, Amazon announced its plan to invest up to $4 billion in the AI firm Anthropic, acquiring a minority stake in the process. This decision demonstrates Amazon’s commitment to

AI Experts Get Hired

Tech Industry Rehiring Wave: AI Experts Wanted

A few months ago, Big Tech companies were downsizing their workforce, but currently, many are considering rehiring some of these employees, especially in popular fields such as artificial intelligence. The

Lagos Migration

Middle-Class Migration: Undermining Democracy?

As the middle class in Lagos, Nigeria, increasingly migrates to private communities, a PhD scholar from a leading technology institute has been investigating the impact of this development on democratic

AI Software Development

ChatGPT is Now Making Video Games

Pietro Schirano’s foray into using ChatGPT, an AI tool for programming, has opened up new vistas in game and software development. As design lead at business finance firm Brex, Schirano

Llama Codebot

Developers! Here’s Your Chatbot

Meta Platforms has recently unveiled Code Llama, a free chatbot designed to aid developers in crafting coding scripts. This large language model (LLM), developed using Meta’s Llama 2 model, serves

Tech Layoffs

Unraveling the Tech Sector’s Historic Job Losses

Throughout 2023, the tech sector has experienced a record-breaking number of job losses, impacting tens of thousands of workers across various companies, including well-established corporations and emerging startups in areas

Chinese 5G Limitation

Germany Considers Limiting Chinese 5G Tech

A recent report has put forth the possibility that Germany’s Federal Ministry of the Interior and Community may consider limiting the use of Chinese 5G technology by local network providers

Modern Warfare

The Barak Tank is Transforming Modern Warfare

The Barak tank is a groundbreaking addition to the Israeli Defense Forces’ arsenal, significantly enhancing their combat capabilities. This AI-powered military vehicle is expected to transform the way modern warfare

AI Cheating Growth

AI Plagiarism Challenges Shake Academic Integrity

As generative AI technologies like ChatGPT become increasingly prevalent among students and raise concerns about widespread cheating, prominent universities have halted their use of AI detection software, such as Turnitin’s