How to best format input read from a file to a string
I am trying to set up a class to convert input read from an xml-file to a java-string, which I can pass on to a web service.
My attempt is probably not the smartest, but what I did was to set up a for-loop, which iterates through each line in the xml, appending "\n" to the end of each line, before storing them in a variable, which is loaded into an arraylist. When there are no more lines to read in the xml-file, the for-loop should terminate and the contents of the ArrayList should be written to a string, which is then returned.
Below is my attempt to implement this - thanks in advance!
import java.io.*;
import java.util.*;
public class RequestBuilder {
private String _filename, output;
//Constructor method
RequestBuilder(String filename){
String line;
_filename = filename;
//Sets up a array to store each line of XML read from a file
ArrayList<String> lineList;
lineList = new ArrayList<String>();
try {
//Sets up a filereader and a buffer
FileReader fr = new FileReader(_filename);
BufferedReader br = new BufferedReader(fr);
//Iterates through each element of the arraylist until empty
for (String o : lineList){
//Stores a single linein a variable and appends a line-break
line = br.readLine() + "\n";
//Addseach line to the arraylist
lineList.add(line);
//Closes the filereader
fr.close();
//Writes the arraylist to a string
output = lineList.toString();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
public String getRequest(){
return output;
}
799992 wrote:
Well, the reason for doing an ArrayList was that I had to process each line with line breaks and escape characters, but I know realize that I can do the same thing by summing the lines for each iteration directly intro a string like below - it works :-)
Apparently the filereader takes care of double-quotes as I don't see any difference in the output when I disable the logic I made, which substitutes " with \", can anyone confirm this?
The code I ended up using:
//Sets up a filereader and a buffer
FileReader fr = new FileReader(_filename);
BufferedReader br = new BufferedReader(fr);
//initializes the output variable with the first line from the file
output = br.readLine() + "\n";
while (br.ready() == true) {
//reads each line, saves it in a variable and appends line breaks
line = br.readLine() + "\n";
//Replaces adds escape character to any double-quotes (apparently not neccessary?)
tmpLine = line.replaceAll("\"", "\\\"");
line = tmpLine;
//sums each line in the current string
output = output + line;
As EJP said you can directly write to the webservice. If you want to check for yourself what the result looks like just read the file without adding anything.
public String readFile(){
String xmlString = "";
try{
String line = null;
xmlFile = new File(//file);
reader = new BufferedReader(new FileReader(xmlFile));
while((line = reader.readLine()) != null){
xmlString += line;
catch(FileNotFoundException e){
e.printStackTrace();
catch(IOException e){
e.printStackTrace();
return xmlString.replaceAll("\\s+"," ").trim();//remove spaces
}
Similar Messages
-
What would be the best way to read from a file. Which classes do I need to use?
I have to write a program, which reads data from a comma separated flat file, parse it and after inserting some busineess logic insert into a databse .
I will have to read the data line by line.
Any help????I would use:
public void readData()
try
data = new String[this.countRows("comp.txt")][];
BufferedReader br = new BufferedReader(new FileReader("comp.txt"));
for(int x = 0; x < data.length; x++)
StringTokenizer temp = new StringTokenizer(br.readLine(), "?");
data[x] = new String[temp.countTokens()];
for(int y = 0; y < data[x].length; y++)
data[x][y] = temp.nextToken();
catch(Exception e)
System.out.println(e.toString());
private int countRows(String f)
int t = 0;
try
BufferedReader brCountRows = new BufferedReader(new FileReader(f));
while(brCountRows.readLine() != null)
t++;
catch(Exception e)
System.out.println(e.toString());
return t;
return t;
}It works deliciously! -
How to avaoid space while reading from flat file
Dear all
I am using forms 10g.
I am reading data from flat file using Text_io.
In my exception part i have written like this
EXCEPTION
WHEN no_data_found THEN
CLIENT_TEXT_IO.Fclose(in_file);But if in my last line from the flat file is some other characters then it is taking that also .
How can i avoid it ?
Note :- Other characters means you cannot see like this , when you press SHOW ALL CHARACTERS button in the NOTEPAD++ then it will show ...My File is like this ABC . There is no extension like ABC.txt .
And in the file if the last line if blank space is there then it is coming to exception part , but if TAB is there then it is not coming . -
How do i do the replacement by reading from a file ?
The multibyte representation in cloumn 2 in the input file is encoded in UTf8 format.
I have the code to get the code point value from a multibyte representation.
But i am not sure how to do the same when reading from a file.
A better explanation of the requirement is like this,
I have a java program ,i have a String="test";
I traverse the string
on encountering the character 't' i read from the input file ,the input file has the characters m to z listed in it, and it also has the UTF8 encoded multibyte representation in it.
I then read from the file
I search the file to get he character 't'
on gettin the character 't' i get the corresponding multibyte representation from the input file
Then i get the unicode code point value for the multibyte representation that i got from the input file.
Lastly i replace the character 't' in the string with the unicode code point value 3046
Hope the requirement is clear
Please do help
Any help would be very useful
Thanking you
khurramI am still not sure as to what your problem is. It would be better if you specify as to where the problem lies in the steps that you have stated and ask for a solution.
agar yeh homework hai to log yehan par isse appreciate nahin karte. Acha hota agar requirements ki bajai problem discuss ki jati. -
Recovery Disk Error : cannot read from source file or disk HOW TO FIX ISSUE
I have had my satellite L655-S5096 for some time now.. I had to switch out hard-drives the other day and installed windows 7 home on it from my own disk. I tried to download all the drivers needed, but the graphics and wifi drivers never worked, so I pulled out the old toshiba disks to start from new with this harddrive.. It gets to asking me for the second disc, then the second disc gives me the the "cannot read from source file or disk PREINST8.SWM" This is from the "out of the box" setting, which is recommended. I do not know how to fix this issue besides reinstalling windows 7 from my disc and trying to get the drivers to work again.. however I shouldn't have to since I have the Toshiba recovery disks.. do I need new disks?
Yes, I also had the hard drive drivers and all of that installed.. my toshiba reads the HDD just fine.
~DrewSatellite L655-S5096
Downloads here.
the second disc gives me the the "cannot read from source file or disk PREINST8.SWM"
My best guess is that the disc is not readable. Try copying it to another. Sometimes that works.
Otherwise, order new discs from Toshiba.
-Jerry -
How to read from a file line by line
Hi
I am new to using LabView and was wondering how I could read data from a text file one line at a time and display this data one line at a time as well. I tried looking through the Reading from Text File . vi example but that just seems to be reading and displaying everything together.
Thanks
-KaranHi
My aim is to read text line by line and to then go ahead and display the last 8 reaad lines of code to give the impression of text falling down a screen. I tested the first while loop and that seemed to work fine. However, when I encounter an EOF, I would like the text already read to keep making its way down the screen and keep inputting NULL characters into the array to simulate the effect of the text falling down the screen which is why I created the second while loop. I tried to input the NULL characters using a box for ENUM constants. However, I kept getting an error saying the data types do not match. What would I need to do? For the display I plan on putting indicators next to the 8 places where the text would be stored which I have not done so far.
I am also attaching a copy of the error.
Thanks
-Karan
Attachments:
DisplayText.vi 40 KB
Error.JPG 89 KB
PictureOfBlock.JPG 120 KB -
How to read from text file?
I would like to read data (frequencies) already written in a text file. I will need read these frequencies one at a time to set the function generator (as part of my data acquisition application), acquire data that is in turn written to a file and then go back and read the next frequency from the file to repeat the process again. I also have another idea of doing the same, which is read all the frequencies from the text file and populate a table and a frequency value is picked from the table each time to go through the process mentioned above.
Can anyone suggest the following: (1) How to read from a text file, (2) What could be the most efficient way of solving my above problem.
I am a new LabVIEW user and any help will be appreciated.Hi Research,
Depending on the format of the data file, there are a few options for reading it. If it is tab delimited, you may want to use the Read from SpreadSheet File VI which will read the file into an Array. You can then use the Index Array VI to pull out individual entries. If the files is ASCII but not tab delimited, you could use the regular Open File and Read File VIs. You can either read the file out piece by piece, or read the entire file into a string and then use the Match Pattern VI to parse out the different elements (there are actually many ways to do this - check out the Strings subpalette).
Since you're new to LabVIEW, you may want to check out these resources:
Three Hour Introduction to LabVIEW
Six Hour Introduction to LabVIEW
Getting Started with LabVIEW
I hope this helps! Let us know if you have more questions,
Megan B.
National Instruments -
How to read from excel file and write it using implicit jsp out object
our code is as below:Please give us proper solution.
we are reading from Excel file and writing in dynamicaly generated Excel file.it is writing but not as original excel sheet.we are using response.setContentType and response.setHeader for generating pop up for saveing the original file in to dynamically generated Excel file.
<%@ page contentType="application/vnd.ms-excel" %>
<%
//String dLoadFile = (String)request.getParameter("jspname1");
String dLoadFile = "c:/purge_trns_nav.xls" ;
File f = new File(dLoadFile);
//set the content type(can be excel/word/powerpoint etc..)
response.setContentType ("application/msexcel");
//get the file name
String name = f.getName().substring(f.getName().lastIndexOf("/") + 1,f.getName().length());
//set the header and also the Name by which user will be prompted to save
response.setHeader ("Content-Disposition", "attachment; filename="+name);
//OPen an input stream to the file and post the file contents thru the
//servlet output stream to the client m/c
FileInputStream in = new FileInputStream(f);
//ServletOutputStream outs = response.getOutputStream();
int bit = 10;
int i = 0;
try {
while (bit >= 0) {
bit = in.read();
out.write(bit) ;
} catch (IOException ioe) { ioe.printStackTrace(System.out); }
out.flush();
out.close();
in.close();
%>If you want to copy files as fast as possible, without processing them (as the DOS "copy" or the Unix "cp" command), you can try the java.nio.channels package.
import java.nio.*;
import java.nio.channels.*;
import java.io.*;
import java.util.*;
import java.text.*;
class Kopy {
* @param args [0] = source filename
* args [1] = destination filename
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.err.println ("Syntax: java -cp . Kopy source destination");
System.exit(1);
File in = new File(args[0]);
long fileLength = in.length();
long t = System.currentTimeMillis();
FileInputStream fis = new FileInputStream (in);
FileOutputStream fos = new FileOutputStream (args[1]);
FileChannel fci = fis.getChannel();
FileChannel fco = fos.getChannel();
fco.transferFrom(fci, 0, fileLength);
fis.close();
fos.close();
t = System.currentTimeMillis() - t;
NumberFormat nf = new DecimalFormat("#,##0.00");
System.out.print (nf.format(fileLength/1024.0) + "kB copied");
if (t > 0) {
System.out.println (" in " + t + "ms: " + nf.format(fileLength / 1.024 / t) + " kB/s");
} -
How do I pass input values from a html page to a jsf page
hi,
In my project,for front view we have used html pages.how can I get input values from that html page into my jsf page.for back end purpose we have used EJB3.0
how can I write jsf managed bean for accessing these entities.we have used session facade design pattern and the IDE is netbeans5.5.
pls,help me,very urgent
thanx in advanceSimplest way is to rewrite html page into jsf page.
You can use session bean in your managed bean like this:
import javax.naming.Context;
import javax.naming.InitialContext;
public class ManagedBean {
private Context ctx;
private Object res;
// session bean interface
private Service service;
public ManagedBean() {
try{
ctx = new InitialContext();
res = ctx.lookup("Service");
service = (Service) res;
catch(Exeption e){
}Message was edited by:
m00dy -
How to open saved files using 'read from text file' function
Hi everyone, I am having a hard time trying to solve the this particular problem ( probably because I am a newb to lanbview ). Anyway , I am able to save the acquired waveforms by using the 'Write to text file' icon. I did manually modify the block diagram of the 'Write to text file' icon and create the correct number of connector so as to make my program work. But now I have no idea on how to modify the block diagram of the 'Read from text file' block diagram to make my program 'open' my saved waveforms. Or i do not have to modify anything from the block diagram of the 'Read from text file'? Can anyone teach/help me connect up? Do i need the build array on the "open" page?
Here are some screenshots on part of my program
let me know if you guys would need more information / screenshots thank you!
Attachments:
ss_save.jpg 94 KB
ss_open.jpg 94 KB
modified_writetotextfile.jpg 99 KBOhmy, thanks altenbach. oh yeah i forgot about those sub VIs. will upload them now. Was rather demoralized after reading the comments and really struck me on how weak i'm at on labview really hope to get this done. But of course i have to study through and see how it works. Actually i am going to replace those 'signal generators sub vi' with ThoughtTechonology's sample code so i can obtain data waveforms real-time using Electrocardiography (ECG) ,Electromyography (EMG ) and Electroencephalography (EEG) hopefully i can find out how to connect the sample code.
( ps . cant connect it now unless my program is working otherwise labview will crash )
( p.s.s the encoder of my biofeedback trainer already acts as an DAQ so i wont need to place an DAQ assistant in my block diagram i suppose )
The sample code of ThoughtTechnology is named as attachment.ashx.vi. too bad i cant use it and present it as my project
Attachments:
frequency detactor.vi 53 KB
signal generator.vi 13 KB
attachment.ashx.vi 40 KB -
How to print the content in Reverse which is read from the file
i have written a program to display the content of the file using files concept. now the task is how to display it in reverse order i.e from last to first which is read from the file.
If it will all fit in memory read the file as you are doing now appending everything into a StringBuilder. Then use the reverse() method of that class to obtain your output.
http://java.sun.com/javase/6/docs/api/java/lang/StringBuilder.html#reverse() -
I have the code to read from a file but my problem is how to prompt the user for the file name at run time.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.InputMismatchException;
import java.util.Scanner;
public class FileRead {
public static void main(String args[]) {
Scanner scan = null;
File file = new File("Results.txt");
String number;
try {
scan = new Scanner(file);
while (scan.hasNext()){
number = scan.next();
System.out.println(number);}
catch (FileNotFoundException ex1){
System.out.println("No such file");
catch (IllegalStateException ex2){
System.out.println("Did you close the read by mistake");
catch (InputMismatchException ex){
System.out.println("File structure incorrect");
finally{
scan.close();}
}Any hints would be greatly appreciated. Thank you in advanceI have read through some of the tutorials that you have directed me too and they are very useful, thank you. however there are still a few things that i am not clear about. I am using net beans 5.0 I have placed a text file named Results.txt into the project at the root so the program can view it.
When I use the code that you provided me with, does it matter where the file is, or will it look through everywhere on the hard drive to find a match?
This code compiles but at run time it comes up with this error
run-single:
java.lang.NoClassDefFoundError: NamedFile
Exception in thread "main"
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
import java.util.Scanner;
import java.io.*;
class NamedFileInput
public static void main (String[] args) throws IOException
int num, square;
// this Scanner is used to read what the user enters
Scanner user = new Scanner( System.in );
String fileName;
System.out.print("File Name: ");
fileName = user.nextLine().trim();
File file = new File( fileName ); // create a File object
// this Scanner is used to read from the file
Scanner scan = new Scanner( file );
while( scan.hasNextInt() ) // is there more data to process?
num = scan.nextInt();
square = num * num ;
System.out.println("The square of " + num + " is " + square);
}his is the code that i used. It is the same as the code you posted for me (on chapter 23 I/O using Scanner and PrintStream) Sorry im just really stuck on this!! -
How do I transfer adobe reader from a desk top computer to a laptop
how do i transfer adobe reader from my desk top to a new lap top?
You move it as you would move any other data files or documents; nothing special about PDF files.
Easiest way is to copy them to a memory stick.
Another way is to upload them to Files or Workspaces at Acrobat.com -
Dear all,
I want to use Labview to process a data.
Now I have a array in a text file.
this array is very very big. which is at least row*col = 6 * 100000;
the column size always 6,
but the row size is ramdom, some times is very big, like bigger than 65535,
when I use "read from measurement file express.vi" to read this file, the array I could get always 6*5339, I don't know why. the column size is always 5339.
and then I delete the 1st row of the array and then write into a txt file via "write measurement file express. vi", it takes a very long time. almost computer has no response. after a while, no file was creat to record the data.
is there an efficient way to process such big data file and store the processed file into a new file
thank you very much
Jack
Message Edited by weichengatech on 03-09-2006 12:00 AMHello,
There’s no real efficient way to read the file if you don’t
know exactly how many rows of data you have.
Your going to just have to read a row at a time and add the results to
the end of an array (granted for the clever programmers there are some more
efficient ways to do this than just with ‘build array’). I would start by asking you how much
information you know about the file and what the exact structure of it is (i.e.
is it a binary file, a tab delimited file, or a LVM file)? Could you provide a screenshot of the code
you are running? If you provide a little more information on the file structure
we might be able to contribute some additional information.
Look forward to hearing back from you-
Travis M
LabVIEW R&D
National Instruments -
When reading from the file validate the date 'DD/MM/YYYY' format
Hi,
reading from the file ,validate the date format 'DD/MM/YYYY'.
Thanks & regards
venkataI suppose that you are writing a program in some programming language, probably PL/SQL. So, you can use TO_DATE function and handle the exception when it occurs.
create or replace procedure tstdt
as
stdt varchar(10);
dt date;
begin
stdt := '20/10/2006';
dt := to_date(stdt);
dbms_output.put_line('date is correct
exception
when others then
dbms_output.put_line('Invalid Date');
end;[],
Miguel
Maybe you are looking for
-
Problems getting ODBC SQL Interface to work for Essbase 11.1.1.3
Hi folks. We're running Essbase 11.1.1.3 on Linux (32 bit) and I want to use the ODBC SQL Interface to load fact data. We have run the SQL Interface install .sh script successfully, then restarted the Essbase agent, and have modified the ODBC.ini fil
-
I am having an installation failure issue with my itunes 11 software. File is corrupted and i don't know what to do. I've un-install and re-installed the software three times and continue to get the same error message. It states that "This copy of
-
Regular expression to get substring from string
Hi, I'm having the following problem: SELECT REGEXP_SUBSTR(';first field;ir-second field-02;ir-second field-01; third field','.*ir-(.*)-01.*')FROM dual [\CODE] This is the select that I have with a java expression! In java I'm able to do find the rig
-
I have macbook pro running Intel Core 2 Duo if I upgrade to Lion OS Xv10.7 will my macbook run slower?
-
Lmp bluetooth 1314 will not pair
I have an LMP Bluetooth 1314 that Will connect however it will not Pair. It never shows me the password that it insist it will. Help