Read in a text file and parse at spaces
I need to read in a text file, then split it at the spaces (after each word)
then I would like to save each sentence (maybe as a String Buffer)
(chek each word to see if a .?! is at the end to determine the end of a sentence)
Then I need to add the word END to the end of the StringBuffer
then store each sentence as an element in an arrayList.
Please Help.
Cant you just store the entire text file into a really big String, then split it at each "."?
String text = "";
//read file into text
String[] sentences = text.split(".");
Similar Messages
-
Reading through a text file and then sorting
I'm having a lot of problems with this.
I have to read through a text file and I have to split the string up so that it is seperated into individual tokens. A line from the text file looks like this. addEvent(new Bell(tm + 9000)). I have to grab the addEvent, new, Bell, tm and 9000 and store it in a linkedlist. After reading through the whole text file I have to sort the the linked list based on the number. ie: 9000. Is there any way to do this? I currently break up the text file using a StringTokenizer object but then i am uncertain on how to add it to a linked list and then sort each line based on the number. Any help would be appreciated.
JoeSorry to bother you Ben but I just can't get my head wrapped around this. Here is exactly what I have to do:
After reading, Events must be stored in the EventSet according to the time they are to occur. Assume that no time number is more than 8 digits long. Restart() must be able to deal appropriately with any order of the Events. To accomplish this have Restart() save the relevant Event information in an LinkedList of strings and sort the Events by time before adding each event to EventSet. Use the <list>.add() to set up your linked list. This is shown in c09:List1.java and Collections.sort(<list>) shown in c09:ListSortSearch. Modify the Bell() to output a single "Bing!". When you read in a Bell event generate the appropriate number of Bell events as indicated by rings. These must be set to the correct times. This is an alternative to generating the new Bell events within Bell(). It will allow them be sorted into their correct time sequence. At this point the output of the program should be identical the original program.
After the intitial start, when restarting Restart() must provide to the user the option to recreate the EventSet from the linked list or read in a new file (supplied by the user). This must be achieved by prompting the user at the console. Please also allow the user the option to quit the program at this stage.
Main Program Code:
public class GreenhouseControls extends Controller
private boolean light = false;
private boolean water = false;
private String thermostat = "Day";
private boolean fans = false;
private class FansOn extends Event
public FansOn(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here to
// physically turn on the Fans.
fans = true;
public String description()
return "Fan is On";
private class FansOff extends Event
public FansOff(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here to
// physically turn off the Fans.
fans = false;
public String description()
return "Fans are Off";
private class LightOn extends Event
public LightOn(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here to
// physically turn on the light.
light = true;
public String description()
return "Light is on";
private class LightOff extends Event
public LightOff(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here to
// physically turn off the light.
light = false;
public String description()
return "Light is off";
private class WaterOn extends Event
public WaterOn(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here
water = true;
public String description()
return "Greenhouse water is on";
private class WaterOff extends Event
public WaterOff(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here
water = false;
public String description()
return "Greenhouse water is off";
private class ThermostatNight extends Event
public ThermostatNight(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here
thermostat = "Night";
public String description()
return "Thermostat on night setting";
private class ThermostatDay extends Event
public ThermostatDay(long eventTime)
super(eventTime);
public void action()
// Put hardware control code here
thermostat = "Day";
public String description()
return "Thermostat on day setting";
// An example of an action() that inserts a
// new one of itself into the event list:
private int rings;
private class Bell extends Event
public Bell(long eventTime)
super(eventTime);
public void action()
// Ring every 2 seconds, 'rings' times:
System.out.println("Bing!");
if(--rings > 0)
addEvent(new Bell(System.currentTimeMillis() + 2000));
public String description()
return "Ring bell";
private class Restart extends Event
public Restart(long eventTime)
super(eventTime);
public void action()
long tm = System.currentTimeMillis();
// Instead of hard-wiring, you could parse
// configuration information from a text
// file here:
try
BufferedReader in = new BufferedReader(new FileReader("Event Config.txt"));
String str;
String[] l1 = new String[5];
LinkedList l2 = new LinkedList();
while((str = in.readLine()) != null )
StringTokenizer st = new StringTokenizer(str, "(+); ");
int nIndex = 0;
while (st.hasMoreTokens())
l1[nIndex] = st.nextToken();
//System.out.println(st.nextToken());
nIndex++;
l2.add(l1);
String[] s1 = (String[])l2.get(1);
for(int i = 0; i < s1.length; i++)
System.out.println(s1);
Comparator comp = s1[4];
Collections.sort(l2, comp);
in.close();
catch (IOException e)
rings = 5;
addEvent(new ThermostatNight(tm));
addEvent(new LightOn(tm + 1000));
addEvent(new LightOff(tm + 2000));
addEvent(new WaterOn(tm + 3000));
addEvent(new WaterOff(tm + 8000));
addEvent(new Bell(tm + 9000));
addEvent(new ThermostatDay(tm + 10000));
// Can even add a Restart object!
addEvent(new Restart(tm + 20000));*/
public String description() {
return "Restarting system";
public static void main(String[] args) {
GreenhouseControls gc =
new GreenhouseControls();
long tm = System.currentTimeMillis();
gc.addEvent(gc.new Restart(tm));
gc.run();
} ///:~
Examples File:
addEvent(new ThermostatNight(tm));
addEvent(new Bell(tm + 9000));
addEvent(new Restart(tm + 20000));
addEvent(new LightOn(tm + 1000));
addEvent(new WaterOn(tm + 3000));
rings = 5;
addEvent(new FansOn(tm + 4000));
addEvent(new LightOff(tm + 2000));
addEvent(new FansOff(tm + 6000));
addEvent(new WaterOff(tm + 8000));
addEvent(new WindowMalfunction(tm + 15000));
addEvent(new ThermostatDay(tm + 10000));
EventSet.java Code:
// This is just a way to hold Event objects.
class EventSet {
private Event[] events = new Event[100];
private int index = 0;
private int next = 0;
public void add(Event e) {
if(index >= events.length)
return; // (In real life, throw exception)
events[index++] = e;
public Event getNext() {
boolean looped = false;
int start = next;
do {
next = (next + 1) % events.length;
// See if it has looped to the beginning:
if(start == next) looped = true;
// If it loops past start, the list
// is empty:
if((next == (start + 1) % events.length)
&& looped)
return null;
} while(events[next] == null);
return events[next];
public void removeCurrent() {
events[next] = null;
public class Controller {
private EventSet es = new EventSet();
public void addEvent(Event c) { es.add(c); }
public void run() {
Event e;
while((e = es.getNext()) != null) {
if(e.ready()) {
e.action();
System.out.println(e.description());
es.removeCurrent();
} ///:~
Event.java Code
abstract public class Event {
private long evtTime;
public Event(long eventTime) {
evtTime = eventTime;
public boolean ready() {
return System.currentTimeMillis() >= evtTime;
abstract public void action();
abstract public String description();
} ///:~
Is this problem easier than I think it is? I just don't know what to add to the linkedList. A LinkedList within a linkedList? I find this problem pretty difficult. Any help is muchly appreciated.
Joe -
Help needed regarding reading in a text file and tokenizing strings.
Hello, I require help with a task I've been set, which asks me to read in a text file, and check the contents for errors. The text file contains lines as follows.
surname:forename:1234:01-02-06
I can read in the file, but dont know how to split the strings so each token can be tested (ie numbers in the name tokens)
However, I am not allowed to use regex functions, only those found in java.io.*
I think i should be putting the tokens into an array, but have had no luck so far in doing so. Any help would be appreciated.public class Validator {
public static void main(String args[]) {
String string = "Suname:Forename:1234:01_02-06";
String stringArray[] = string.split(":");
System.out.println (validateLetters(stringArray[0]));//returns true
System.out.println (validateNumbers(stringArray[3]));//returns false
static boolean validateLetters(String s) {
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z')) {
return false; //return false if one of characters is other than a-z A-Z
}//end if
}//end for
return true;
}//end validateLetters
static boolean validateNumbers(String s) {
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if ((c < '0' || c > '9') && (c != '-')) {
return false; //return false if one of characters is other than 0-9 or -
}//end if
}//end for
return true;
}//end validateNumbers
} -
Help with reading in a text file and arrays
I need to read in a text file with info like this for example
dave
martha
dave
billy
I can read the information into an array and display the names but what I need to do is display how many times the same name is in the file for example the output should be
dave 2
martha 1
billy 1
How can I accomplish this? Would I use a Compareto Method to find
duplicate names?Hi,
I would recommend storing them in a Hashtable.. something like this:
Hashtable names = new Hashtable() ;
String s ;
while( ( s = bufferedReader.readLine() ) != null ) {
if ( names.contains( s ) ) {
names.put( s , new Integer( names.get(s)+1 ) ) ;
else {
names.put( s , new Integer( 1 ) ) ;
}Then the hashtable will contain a set of keys and values, which are the names and counts respectively.
Kenny -
Reading from a text file and displaying the contents with in a frame
Hi All,
I am trying to read some data from a text file and display it on a AWT Frame. The contents of the text file are as follows:
pcode1,pname1,price1,sname1,
pcode2,pname2,price2,sname1,
I am writing a method to read the contents from a text file and store them into a string by using FileInputStream and InputStreamReader.
Now I am dividing the string(which has the contents of the text file) into tokens using the StringTokenizer class. The method is as show below
void ReadTextFile()
FileInputStream fis=new FileInputStream(new File("nieman.txt"));
InputStreamReader isr=new InputStreamReader(fis);
char[] buf=new char[1024];
isr.read(buf,0,1024);
fstr=new String(buf);
String Tokenizer st=new StringTokenizer(fstr,",");
while(st.hasMoreTokens())
pcode1=st.nextToken();
pname1=st.nextToken();
price1=st.nextToken();
sname1=st.nextToken();
} //close of while loop
} //close of methodHere goes my problem: I am unable to display the values of pcode1,pname1,price1,sname1 when I am trying to access them from outside the ReadTextFile method as they are storing "null" values . I want to create a persistent string variable so that I can access the contents of the string variable from anywhere with in the java file. Please provide your comments for this problem as early as possible.
Thanks in advance.If pcode1,pname1,price1,sname1 are global variables, which I assume they are, then simply put the word static in front of them. That way, any class in your file can access those values by simply using this notation:
MyClassName.pcode1;
MyClassName.pname1;
MyClassName.price1;
MyClassName.sname1 -
Read data from text file and displaying on Webdynpro
Hi all,
I need some help. I have a text file with set of name, phonenumbers . I want to know how to display the data using Webdynpro. Could some one help me. help is appreciated and I promise to award points for right answer.
Thank you
MarutiHi Maruti,
just open the file and loop on the rows, here an example::
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
FileReader f = new FileReader("c:
FileName.ext");
while ((s = in.readLine()) != null)
//Here you can put the line into a WD context structure, i.e:
wdContext.currentContoEconomicoFormElement().setField(s);
}catch (Exception e) {.....}
in.close();
f.close();
For any others questions, please, let me know.
Vito -
HOW TO WRITE AND READ FROM A TEXT FILE???
How can I read from a text file and then display the contents in a JTextArea??????
Also how can I write the contents of a JTextArea to a text file.
Extra Question::::::: Is it possible to write records to a text file. If you have not idea what I am talking about then ignore it.
Manny thanks,
your help is much appreciated though you don't know it!Do 3 things.
-- Look through the API at the java.io package.
-- Search previous posts for "read write from text file"
-- Search java.sun.com for information on the java.io package.
That should clear just about everything up. If you have more specific problems, feel free to come back and post them. -
Reading a text file and connecting two server
Hi,
I am newbie at java and I have two question ,
asume you have two server and a client. every server reads its own text file and the client connect both of them and read output data, and counts number of words. you must use socket programming to communicate to servers.
I need litle code.
Thanks for your helpHi,
While using ArrayList, use add your elements into it
as an object subtype if you do not specify ArryList
certain type.
But recall that if you use certain
type(ArrayList<String>,....), you do not add any
other different type element.What the heck is this all about Merde? -
Reading from a text file into a 2D array
How do you read from a text file and put it into a 2D array? Or if someone could guide me to where I can find the information?
This tutorial shows how to read a file:
http://java.sun.com/docs/books/tutorial/essential/io/scanfor.html
This tutorial shows how to create arrays with multiple dimensions:
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html -
Reading in a text file to GUI for later analysis
Good Morning any and everyone,
I'm trying to get a piece of code working to read in a text file and it isn't working very well. The code has been seriously crunched together from a multitude of sources so I suspect that the error has occurred from there.
The errors that are occurring are "Can't Find Symbol" errors. Only 2 of them though which is a lot less than I had earlier. Now I'm just banging my head against the wall.
Has anyone got any suggestions as to where I'm going wrong? Anything greatly appreciated.
(PS> Please be gentle, I'm still a newbie)
Thanks.
import java.util.*; // required for List and ArrayList
import java.io.*; // required for handling and IOExceptions
import javax.swing.*;
public class textAnalyser extends JFrame // implements ActionListener
// the attributes
// declare a TextArea
private JTextArea viewArea = new JTextArea(10,55);
// declare the menu components
private JMenuBar bar = new JMenuBar();
private JMenu fileMenu = new JMenu("File");
private JMenu quitMenu = new JMenu("Quit");
private JMenuItem selectChoice = new JMenuItem("Select");
private JMenuItem runChoice = new JMenuItem("Run");
private JMenuItem reallyQuitChoice = new JMenuItem("Really quit");
private JMenuItem cancelChoice = new JMenuItem("Cancel");
// declare an attribute to hold the chosen file
private File chosenFile;
// the constructor
public textAnalyser()
setTitle("Text Analyser"); // set title of the frame
add(viewArea); // add the text area
// add the menus to the menu bar
bar.add(fileMenu);
bar.add(quitMenu);
// add the menu items to the menus
fileMenu.add(selectChoice);
fileMenu.add(runChoice);
quitMenu.add(reallyQuitChoice);
quitMenu.add(cancelChoice);
// add the menu bar to the frame
setJMenuBar(bar);
// add the ActionListeners
// selectChoice.addActionListener(this);
// runChoice.addActionListener(this);
// reallyQuitChoice.addActionListener(this);
// cancelChoice.addActionListener(this);
// configure the frame
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setSize(450,200);
setVisible(true);
public void actionPerformed(ActionEvent e)
if(e.getSource() == displayContentsChoice)
try
final int MAX = 300;
FileReader textFile = new FileReader("textfile.txt");
BufferedReader textStream = new BufferedReader(textFile);
int ch; // holds integer value of character
char c; // holds character when type cast from integer
int counter = 0; //counts number of characters read
ch = textStream.read(); //reads the first character from the file
c = (char) ch; //type cast from integer to character
viewArea.append("\n");
/* continue through the file until either the end of the file or the maximum
number of characters allowed have been read*/
while(ch != -1 && counter <= MAX)
counter++; // increment the counter
viewArea.append("" + c); // display the character
ch = textStream.read(); // read the next character
c = (char) ch;
textStream.close();
viewArea.append("\n");
catch(IOException ioe)
if(chosenFile == null) // no file selected
viewArea.append("No file selected\n");
else
viewArea.append("There was a problem reading the file\n");
}A couple of points:
*You've commented out stuff that is needed, like the adding of actionlisteners, the implements actionlistener,...
*Your actionlistener is looking for a menu choice which doesn't exist "displayContentsChoice". Does this menu item need to be created?
*How much of this code have you yourself created? Do you understand its inner working?
*What is the purpose of this code? Is it for work? School? Homework?
Good luck!
/Pete -
Getting repeated values when reading from a text file.
I need to read from a text file. When the token encounters a particular word (command) I need to read the next line and perform some actions. However, this part is working but it is repeating the values again and again until it encounters the next particular word (command). Hope that someone will help me out, as always when I posted a problem in these forums.
SetOperations class - contains the set methods
// Imported packages.========================================================
import java.util.Vector;
import java.util.Iterator;
// Public class SetOperations.===============================================
public class SetOperations
// Instance variables.===================================================
private Vector v = null; // Creates new instance of vector.
protected int memberCount;
// Constructor.==========================================================
public SetOperations()
v = new Vector();
} // end constructor.
// Method isMember.======================================================
* Checks whether the element is already a member of the set.
* @return True if Vector v contains Object member.
public boolean isMember(Object member)
if (member != null) // only if Object member is not null.
return v.contains(member); // returns true if vector already contains member.
else
return false; // returns false if vector does not contain member.
} // end public boolean isMember(Object member).
// Method addMember.=====================================================
* Adds a member to the set.
* @return Adds Object member to Vector v.
public void addMember(Object member)
//if (! v.contains(member)) // only if element is not already a member.
if (isMember(member) == false) // only if element is not already a member.
v.add(member); // adds a member.
} // end public void addMember(Object member).
// Method countMember.===================================================
* Returns the number of members present in the vector.
* @return Number of elements present in the vector.
public int countMember()
return v.size();
} // end public int countMember().
// Method isSetEmpty.====================================================
* Returns true if set is empty.
* @return True if no elements are present in Vector v.
public boolean isSetEmpty()
return v.size() == 0; // returns 0 if no elements are present in the vector.
} // end of public boolean isSetEmpty().
// Method printMember.===================================================
* Displays member/s of the set.
* @return Prints element/s present in the vector.
public void printMember()
for (int i = 0; i < v.size(); i++) // iterates through present members.
System.out.println("[" + i + "] " + v.get(i)); // displays member/s present in the vector.
} // end of public void printMember().
} // end public class SetOperations.
SetTextLauncher class - reads from a text file and implements the set operations
// Imported packages.========================================================
import java.util.*;
import java.io.*;
// Public class SetTestLauncher.=============================================
public class SetTestLauncher
// Main method public static void main(String args[]).===================
public static void main(String args[])
displayFile("test.txt"); // outputs result from text file.
// method to display a file on screen
public static void displayFile (String textFile)
// Instance variables.===============================================
// Creates new instances of SetOperations.
SetOperations setA = new SetOperations();
SetOperations setB = new SetOperations();
SetOperations setC = new SetOperations();
SetOperations setD = new SetOperations();
SetOperations setE = new SetOperations();
// Initialisation.
String line = "", nextLine = "";
FileReader fr = null;
try
// Opens the file with the FileReader data sink stream.
fr = new FileReader(textFile);
// Converts the FileReader input stream with the BufferedReader processing stream.
BufferedReader br = new BufferedReader(fr);
// Iterates through text file reading lines until end of text lines.
while (line != null)
line = br.readLine(); // reads one line at a time.
if(line == null) break; // when the line is null break the loop.
// Creates a new instace of StringTokenizer.
StringTokenizer st = new StringTokenizer(line);
// Loops until there are no more tokens.
while (st.hasMoreTokens())
String token = st.nextToken(); // reads next token.
// Only if the token encounters the String "membera".
if(token.equals("membera"))
nextLine = br.readLine(); // gets next line.
setA.addMember(nextLine); // adds a member to the set.
// Displays members present in the set if vector is not empty.
if (! setA.isSetEmpty())
setA.printMember(); // print members present.
// Displays the number of member/s present in the vector.
System.out.println("Number of set members: " + setA.countMember());
// Catches and displays exceptions.
catch (FileNotFoundException exp)
System.out.println(exp.getMessage());
exp.printStackTrace();
catch (IOException exp)
System.out.println(exp.getMessage());
exp.printStackTrace();
finally
try
// if file is found
if (fr != null)
// close file
fr.close();
catch (IOException exp)
exp.printStackTrace();
} // end public static void main(String args[]).
} // end public class SetTestLauncher.Thanks for your interest. Please ignore SetOperations class, it is just the class containing the methods and it works correctly since I checked it without reading from a text file. I marked the part where I think lies my problem in class SetTestOperations.
The information in the text file is as follows:
membera
Hillman
membera
Skoda
membera
Honda
membera
Toyota
and the result is:
[0] Hillman
Number of set members: 1
[0] Hillman
[1] Skoda
Number of set members: 2
[0] Hillman
[1] Skoda
[2] Honda
Number of set members: 3
[0] Hillman
[1] Skoda
[2] Honda
[3] Toyota
Number of set members: 4
instead of just one set:
[0] Hillman
[1] Skoda
[2] Honda
[3] Toyota
Number of set members: 4
Hope it is easier to understand like this.
Regards
Marco
I need to read from a text file. When the token
encounters a particular word (command) I need to read
the next line and perform some actions. However, this
part is working but it is repeating the values again
and again until it encounters the next particular
word (command). Hope that someone will help me out,
as always when I posted a problem in these forums.
SetOperations class - contains the set
methods
// Imported
packages.=============================================
===========
import java.util.Vector;
import java.util.Iterator;
// Public class
SetOperations.========================================
=======
public class SetOperations
// Instance
e
variables.============================================
=======
private Vector v = null; // Creates new instance of
f vector.
protected int memberCount;
Constructor.==========================================
================
public SetOperations()
v = new Vector();
} // end constructor.
// Method
d
isMember.=============================================
=========
* Checks whether the element is already a member of
f the set.
* @return True if Vector v contains Object member.
public boolean isMember(Object member)
if (member != null) // only if Object member is not
ot null.
return v.contains(member); // returns true if
if vector already contains member.
else
return false; // returns false if vector does not
not contain member.
} // end public boolean isMember(Object member).
// Method
d
addMember.============================================
=========
* Adds a member to the set.
* @return Adds Object member to Vector v.
public void addMember(Object member)
//if (! v.contains(member)) // only if element is
is not already a member.
if (isMember(member) == false) // only if element
nt is not already a member.
v.add(member); // adds a member.
} // end public void addMember(Object member).
// Method
d
countMember.==========================================
=========
* Returns the number of members present in the
e vector.
* @return Number of elements present in the vector.
public int countMember()
return v.size();
} // end public int countMember().
// Method
d
isSetEmpty.===========================================
=========
* Returns true if set is empty.
* @return True if no elements are present in Vector
r v.
public boolean isSetEmpty()
return v.size() == 0; // returns 0 if no elements
ts are present in the vector.
} // end of public boolean isSetEmpty().
// Method
d
printMember.==========================================
=========
* Displays member/s of the set.
* @return Prints element/s present in the vector.
public void printMember()
for (int i = 0; i < v.size(); i++) // iterates
es through present members.
System.out.println("[" + i + "] " + v.get(i)); //
// displays member/s present in the vector.
} // end of public void printMember().
} // end public class SetOperations.
SetTextLauncher class - reads from a text file
and implements the set operations
// Imported
packages.=============================================
===========
import java.util.*;
import java.io.*;
// Public class
SetTestLauncher.======================================
=======
public class SetTestLauncher
// Main method public static void main(String
g args[]).===================
public static void main(String args[])
displayFile("test.txt"); // outputs result from
om text file.
// method to display a file on screen
public static void displayFile (String textFile)
// Instance
ce
variables.============================================
===
// Creates new instances of SetOperations.
SetOperations setA = new SetOperations();
// Initialisation.
String line = "", nextLine = "";
FileReader fr = null;
try
// Opens the file with the FileReader data sink
ink stream.
fr = new FileReader(textFile);
// Converts the FileReader input stream with the
the BufferedReader processing stream.
BufferedReader br = new BufferedReader(fr);
// Iterates through text file reading lines until
til end of text lines.
while (line != null)
line = br.readLine(); // reads one line at a
at a time.
if(line == null) break; // when the line is null
null break the loop.
// Creates a new instace of StringTokenizer.
StringTokenizer st = new StringTokenizer(line);
// Loops until there are no more tokens.
while (st.hasMoreTokens())
String token = st.nextToken(); // reads next
next token.
// Only if the token encounters the String
tring "membera".
if(token.equals("membera"))
// *****THE PROBLEM LIES HERE....I GUESS
// need to read the next line after encountering the word membera in text file
nextLine = br.readLine(); // gets next line.
setA.addMember(nextLine); // adds a member to
ber to the set.
// Displays members present in the set if
set if vector is not empty.
if (! setA.isSetEmpty())
setA.printMember(); // print members present.
// Displays the number of member/s present in
ent in the vector.
System.out.println("Number of set members: " +
s: " + setA.countMember());
// Catches and displays exceptions.
catch (FileNotFoundException exp)
System.out.println(exp.getMessage());
exp.printStackTrace();
catch (IOException exp)
System.out.println(exp.getMessage());
exp.printStackTrace();
finally
try
// if file is found
if (fr != null)
// close file
fr.close();
catch (IOException exp)
exp.printStackTrace();
} // end public static void main(String args[]).
} // end public class SetTestLauncher. -
Is it possible to read/write to text file without deleting it?
I know how to read from a text file and how to write to a text file. The problem that i have is i need to use a text file to store data for my application to read and also for my application to write. I would like it if i could write two programs really, one reads, the other is used to update the text file. This file is a list of verbs. I thought about using databases but i couldn't get them to work. I downloaded MySQL server 5.0 and installed it. I then downloaded the driver from http://www.mysql.com/products/driver and ran the auto installer. it said everything worked out perfectly but when i try these lines:
Class.forName("com.mysql.jdbc.Driver");
I get a SQLException that says no suitible driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
( I thought this driver came with the JDK but i guess not, i just read about it in a java book)
I get a ClassNotFoundException
that just says sun.jdbc.odbc.JdbcOdbcDriver
So yeah, SQL is pretty much not working. I need a solution to my problem, either by using text files, or a different type of database. I heard you could use excel to create a database but i have no idea how and i hear microsoft access could also do this, however i don't have microsoft access and i don't intend on paying for it. So, here are my questions:
1st, is there a tutorial on using excel databases in java programs
(if not)
2nd is there a way to read/write/update a text file without deleting it?
(if not)
3rd is there a way to get SQL working, i have windows vista this could be the problem
(if not)
4th what could i do to store information on the hd for reading and modifying later?
thanks, lateralusA database might be overkill just for a list of words.
Thoughts:
<ul>
<li>What is the extent of your "file updating"? If you are just appending to the file, opening it in append mode will keep the file from being clobbered.</li>
<li>Otherwise, why not create new files instead of editting them? The file names could include a version number or timestamp, allowing the reader to select the newest one.
</li>
</ul> -
For my next project I'm supposed to read in a text file and then compute the legibility index. How do I go about reading in a text file?
You should check your double equal signs in that procedure....
Also, the logic you posted above (which I followed), doesn't work perfectly for calculating the number of syllables...for instance, the word "Romeo" contains 3 syllables, but the program will only count two...basically some words which contain the vowels 'io' and 'eo' sometimes are 1 syllable and sometimes are 2....but my program does come close to the indexes listed on the website you mentioned.
Anyways, here is what I have for a very hackish approach (not modularized, but I don't have time to fix it I'm, I'm off work soon).
import java.io.*;
import java.util.*;
public class LegibilityProfiler
public static void main(String[] args)
new LegibilityProfiler();
public LegibilityProfiler()
String line,thisWord;
String[] words;
int numSentences = 0;
int numWords = 0;
int numSyllables = 0;
int syl,consecutiveVowels,i,j = 0;
boolean isWord=false;
char lastvowel=' ';
try
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
//read through lines until end of file is reached
while ((line = reader.readLine()) != null)
//split the words up by spaces
words = line.split("\\s+");
//add number of words in the line just read to total count
numWords+=words.length;
//process each word in this line
for(i=0;i<words.length;i++)
//initialize variables used for each word
syl=0; //number of syllables in this word
isWord=false; //if "word" contains letters
thisWord=""; //stores only the letters in current word
consecutiveVowels=0; //number of consecutive vowels
lastvowel=' '; //last vowel processed
//process the word
for(j=0;j<words.length();j++)
//if word contains character that completes a sentencce
if(words[i].charAt(j) == '.' ||
words[i].charAt(j) == ':' ||
words[i].charAt(j) == ';' ||
words[i].charAt(j) == '?' ||
words[i].charAt(j) == '!')
numSentences++;
//for each character in the word, extract only the letters
if(Character.isLetter(words[i].charAt(j)))
isWord=true;
thisWord+=words[i].charAt(j);
//process only the letters from current word to count vowels
for(j=0;j<thisWord.length();j++)
if(isVowel(Character.toLowerCase(thisWord.charAt(j))))
//if it's the first vowel in a sequence, increase syllable
if(consecutiveVowels==0)
syl++;
//either way, increase consecutive vowel count
consecutiveVowels++;
//store last vowel read in
lastvowel=thisWord.charAt(j);
else //not a vowel, so make sure count is 0
consecutiveVowels=0;
/* once word is processed check to make sure the word didn't
end with an e, and have no other vowels right before it
if(consecutiveVowels==1 && (lastvowel=='e' || lastvowel=='E'))
syl--;
//if it was a word, increase syllable count
if(isWord)
if(syl==0)
syl=1;
numSyllables+=syl;
System.out.println("Number of Words: "+numWords);
System.out.println("Number Sentences: "+numSentences);
System.out.println("Number of Syllables: "+numSyllables);
double ri=206.835-(84.6*numSyllables/numWords)-(1.015*numWords/numSentences);
System.out.println("\nReadability Index: "+((int)ri));
reader.close();
catch(IOException e)
e.printStackTrace();
public boolean isVowel(char c)
return (c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || c=='y'); -
Urgent Help:read from text file and write to table
Hi,
I'm a super beginner looking for a vi to read this data from a text file and insert it into a table:
#19
Date: 05-01-2015
ID= 12345678
Sample_Rate= 01:00:00
Total_Records= 2
Unit: F
1 03-23-2015 10:45:46 70.1 3.6
2 03-23-2015 11:45:46 67.7 2.7
Output table
# date time x y Sample rate Total Records
1 03-23-2015 10:45:46 76.8 2.8 01:00:00 2
2 03-23-2015 10:45:46 48.7 2.1 01:00:00 2
Thanks for your help in advance.
Attachments:
sample.txt 1 KBjcarmody wrote:
Will there always be the same number of rows of noise header information?
Show us how you've read the data and what you've tried to do to parse it. Once you've got the last rows, you can loop over them using Spreadsheet String to Array (after cleaning up a few messy spaces).
Jim,
I didn't know you're that active on here.
Yes, There will always be the same number of noise header information.
I'll show you in person
Regards, -
Read text file and insert into MySQL
Dears,
I need to read text file and then insert the data in the correct column in the MySQL database
example
I have the following text file:
field1=1234 field2=56789 field3=444555
field1=1333 field2=2222 field3=333555
and so on and so forth ,,note that all rows are identical and just the filed value is changed(there is a dilemeter between fields)
how can I read field1,field2 and field3 from text file and insert them in the correct table and column in the database.....
any help?????
thanks for your cooperation
Best RegarsSure.
Which part don't you understand?
1. Reading a text file
2. Parsing the text file contents.
3. Relational databases and SQL.
4. How to create a database.
5. How to connect to a database in Java.
6. How to insert records into the database in Java.
7. How to map Java objects to records in a database.
This is a pretty nice list. Solve complex problems by breaking them into smaller ones.
%
Maybe you are looking for
-
Error in visualizing a Data Form "WDEFGenerator.cpp"
Hi, I have migrated an HFM application from version 4.01 SP2 to version 11.1.2.1 Everything works fine appart from an error in visualizing a Data Form: In the previous version of HFM this error was not verified. If I disable the option SuppressNoData
-
User Exits or BADI for Tcode ME51N
Hi All, My requirement is i need to check available quantity at the time of Purchase req creation. If PR quantity is available in stock then it should not allow to create new PR. Is there any user exit or Badi for this requirement. Kindly send me. Re
-
Hi All Can anyone help me in finding the step by step method for using SOAP as a receiver adapter. Its a SOAP to SOAP scenario... plz help.
-
I was using my iphone less then 5 min earlyer full charge in it and its in a protective case. I put it in my pocket and when i took it out it seems the iphone is dead and wont respond to anything!
-
Hi Guys, Stuck up with XSL Transformation. requirement Input XML --> <row>12 , wee , 67 ,6u,hh</row> multiple rows to a target XML. I have created a XSL transformation using stylus studio worked fine and also used the same Input XML / XSL in XML quer