Java File I/O problems
Posted
by
dwwilson66
on Stack Overflow
See other posts from Stack Overflow
or by dwwilson66
Published on 2012-04-02T17:23:30Z
Indexed on
2012/04/02
17:29 UTC
Read the original article
Hit count: 210
This is my first time working with file i/o in java, and it's not working. The section of the program where I parse individual lines and output a semicolon delimited line works like a charm when I hardcode a file and display on screen.
Whne I try to write to a file public static OutputStream...
errors out as an illegal start to expression
, and I've been unable to get the program to step through an entire directory of files instead of one at a time.
Where I'm not clear: I'm note setting an output filename anywhere...whare am I supposed to do that? The path variable won't pass. What's the proper format for a path? Can anyone see what I need to debug here?
import java.io.*;
public class FileRead
{
public static void main(String args[])
{
try
{
// Open the file(s)
// single file works OK FileInputStream fstream = new FileInputStream("testfile.txt");
Path startingDir = R:\Data\cs\RoboHelp\CorrLib\Output\Production\WebHelp;
PrintFiles pf = new PrintFiles();
Files.walkFileTree(startingDir, pf);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String inputLine;
String desc = "";
String docNo = "";
String replLtr = "";
String specCond = "";
String states = "";
String howGen = "";
String whenGen = "";
String owner = "";
String lastChange = "";
//Read File Line By Line
while ((inputLine = br.readLine()) != null)
{
int testVal=0;
int stringMax = inputLine.length();
//
if(inputLine.startsWith("Description"))
{desc = inputLine.substring(13,inputLine.length());}
else if(inputLine.startsWith("Reference Number"))
{docNo = inputLine.substring(20,inputLine.length());}
else if(inputLine.startsWith("Replaces Letter"))
{replLtr = inputLine.substring(17,inputLine.length());}
else if(inputLine.startsWith("Special Conditions"))
{specCond = inputLine.substring(21,inputLine.length());}
else if(inputLine.startsWith("States Applicable"))
{states = inputLine.substring(19,inputLine.length());}
else if(inputLine.startsWith("How Generated"))
{howGen = inputLine.substring(15,inputLine.length());}
else if(inputLine.startsWith("When Generated"))
{whenGen = inputLine.substring(16,inputLine.length());}
else if(inputLine.startsWith("Owner"))
{owner = inputLine.substring(7,inputLine.length());}
else if(inputLine.startsWith("Last Change Date"))
{lastChange = inputLine.substring(17,inputLine.length());}
}
//close while loop
// Print the content on the console
String outStr1 = (desc + ";" + docNo + ";" + replLtr + ";" + specCond + ";" + states);
String outStr2 = (";" + howGen + ";" + whenGen + ";" + owner + ";" + lastChange);
String outString = (outStr1 + outStr2);
System.out.print(inputLine + "\n" + outString);
String lineItem = (outStr1+outStr2);
//
try (OutputStream out = new BufferedOutputStream
(logfile.newOutputStream(CREATE, APPEND)))
{
out.write(lineItem, 0, lineItem.length);
}
catch (IOException x)
{
System.err.println(x);
}
public static OutputStream newOutputStream() throws IOException
{
// append to an existing file, create file if it doesn't initially exist
out = Files.newOutputStream(c:, CREATE, APPEND);
}
//Close the input stream
in.close();
}
catch (Exception e)
{
//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
© Stack Overflow or respective owner