Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Creating a Simple Synchronous File Reader

DZone's Guide to

Creating a Simple Synchronous File Reader

Learn how to create a quick and easy Java component that will allow you to read your files in a Mule flow.

· Integration Zone ·
Free Resource

SnapLogic is the leading self-service enterprise-grade integration platform. Download the 2018 GartnerMagic Quadrant for Enterprise iPaaS or play around on the platform, risk free, for 30 days.

Hello, everyone!

Here I will show you create a very simple synchronous file reader inside your Mule flow.

You just need to add these lines of code in your Java component class, which will enable you to read a file in between the flow.

I hope this helps!

package org.rahul.util;

import java.io.File;

import org.mule.api.MuleEventContext;
import org.mule.api.lifecycle.Callable;

public class SynchronousFileReader implements Callable {

    public File getFileContent(String fileLocation)
    {
        File file = new File(fileLocation);
        return file;
    }

    @Override
    public Object onCall(MuleEventContext eventContext) throws Exception {

        String filepath = eventContext.getMessage().getInvocationProperty("filepath");
        File file = getFileContent(filepath);
        return file;
    }
}


Sample usage:

<component class="org.rahul.util.SynchronousFileReader" doc:name="Java"/>
        <!-- File as Binary -->
        <file:file-to-byte-array-transformer doc:name="File to Byte Array" mimeType="binary/octet-stream"/>


Use transformers like File-to-String or File-to-Byte-Array as you require after using this Java component.

With SnapLogic’s integration platform you can save millions of dollars, increase integrator productivity by 5X, and reduce integration time to value by 90%. Sign up for our risk-free 30-day trial!

Topics:
mulesoft ,mule esb ,component ,java ,custom component

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}