Hello,

I am creating a named pipe using JNI by calling the mkfifo() command. I am using mode = 666.

I am then trying to write into the pipe using Java, but I get stuck while writing into the pipe. I get stuck at the following line and not able to go past it.

PrintWriter out = new PrintWriter((new BufferedWriter(new FileWriter(pipePath))));

Please help.

Regards,

-H

PipePeer.java

{code}
import java.io.*;*


public class PipePeer {*

private native int createPipe(String pipeName, int mode);* // -------->; native method to call mkfifo(pipeName, mode);
static{
System.load("/home/user/workspace/Pipes/libpipe.so");
}

public static void main(String[] args) {

PipePeer p = new PipePeer();
PipeImplement pi = new PipeImplement();
String pipePath = "/home/user/workspace/Pipes/pipeFolder/pipe1";
int mode = 0777;
int createResult = p.createPipe(pipePath, mode);
if (createResult == 0)
System.out.println("Named pipe created successfully");
else
System.out.println("Error: couldnot create Named pipe");


String pipeLocation = "/home/user/workspace/Pipes/pipeFolder/pipe1";
pi.writePipe("From Java", pipeLocation);
System.out.println(pi.readPipe(pipeLocation));

}
}





_PipeImplement.java_

import java.io.*;

public class PipeImplement {

public BufferedReader in;
public void writePipe(String strWrite, String pipePath){
PrintWriter out = null;
try {
//-------------------->; cannot go past this line <-----------------------------------
out = new PrintWriter((new BufferedWriter(new FileWriter(pipePath))));
} catch(IOException e) {
System.out.println("error while writing");
e.printStackTrace();
}
out.println(strWrite);
System.out.println("writen");
out.close();
System.out.println("close");
}
public String readPipe(String pipePath) {
try {
in = new BufferedReader(new FileReader(pipePath));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String lineRead = "....";
try {
lineRead = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}

return lineRead;
}
}