Select first word in each line of a text file to do something.
How do I select the first word in each line to do something newer from a text file in Powershell?
Example:
GBL Primary File
local Primary File
localhost Primary File
Opstest Primary File
TrustAnchors Primary File
99upgrade
Hi 99,
here's an example on how to do it:
$lines = Get-Content "C:\ExampleFolder\Example.txt"
foreach ($line in $lines)
Write-Host ($line.Split(" "))[0]
Just replace the Write-Host line in the loop with what you actually want to do with the first word in the line.
Cheers,
Fred
There's no place like 127.0.0.1
Similar Messages
-
Read the first word of each line in a text file
i need to read the first word of each line of a text file.
i know of line.split() but not actually sure how i would go about using it
Any help most appreciated
Many Thanks
BenHi thanks for the reply!
this is what i tried... and it still doesn't get me the first word of each line!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.io.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.swing.text.*;
import javax.swing.event.*;
import java.util.Calendar;
import java.util.Scanner;
import java.util.Vector;
import java.text.SimpleDateFormat;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.io.BufferedReader;
public class testing {
Vector progs=new Vector();
Vector rand=new Vector();
String[] tmp = new String [2];
String str;
String str2="ewerwer";
String str3;
public void programTest()
try
BufferedReader in = new BufferedReader(new FileReader("progList.log"));
while ((str = in.readLine()) != null)
progs.add(str);
catch(IOException e)
System.out.println("cannot read file");
//////THE ISSUES IS HERE....I WANT TO GET THE FIRST WORD FROM EACH LINE OF THE FILE!!!
try
BufferedReader in2 = new BufferedReader(new FileReader("eventLog.log"));
while ((str = in2.readLine()) != null)
tmp = str.split(" ");
System.out.println(tmp[0]);
catch(IOException e)
System.out.println("cannot read file");
public static void main(String[] args)
testing B = new testing();
B.programTest();
// B.fileToVector();
//B.LoginWindow();
//B.anomDetect();
}//end class -
Program to read only specific words in each Line in a text file
Hi
I have a question
I need to write a program where the program must read only specific words in each line
I will give you an example...
PSAPPSRV.21201 1-42 13.35.54 238.360 Cur#1.HDEV RC=0 Dur=0.000 COM Stmt=SELECT VERSION FROM PSVERSION WHERE OBJECTTYPENAME = 'SYS'
PSAPPSRV.21201 1-43 13.35.54 0.040 Cur#2.HDEV RC=0 Dur=0.000 COM Stmt=SELECT STYLESHEETNAME FROM PSOPTIONS
These are two lines in my text file...now I need to read only the SQL statements present that is both SELECT statements.. Can you please suggest a method.......My first reaction to the question is why would you want such thing, but may be I am unknown :)
Assuming you have the text as string, I mean
String str = "PSAPPSRV.21201 1-42 13.35.54 238.360 Cur#1.HDEV RC=0 Dur=0.000 COM Stmt=SELECT VERSION FROM PSVERSION WHERE OBJECTTYPENAME = \'SYS\'";you can obtain the sql statement using substring method like
String result = str.substring(str.indexOf("SELECT")); Again I assume there is no word SELECT preceding and the word SELECT is all caps. -
Unwelcome caps on first word of each line in Pages 08
I'm brand new to Pages, though I've used AppleWorks for years.
I've searched exhaustively in "helps" for a/the way to disable the quirk of changing
the first letter of each line of copy to a cap when typing. (We still 'type' here in the
cornfields) I Would appreciate greatly, your help in finding an escape.
Thank you for any help,
psWelcome to the Discussions!
When you go to:
Pages > Preferences > Auto-Correction (Tab)
Is your Fix Capitalization box checked?
Joe -
Java write/append to each line of a text file
I have spent numerous hours trying to figure out what I am doing wrong. If anyone more experienced could tell me what is wrong with my code.
I have a very simple text file with 5 lines:
line1
line2
line3
line4
line5
All I am trying to do is append some string to the end of each of those lines. Everytime I run my code, it erases all content but does not write/append anything to the file. Any help is greatly appreciated.
Thanks! I am about to throw this monitor out the window!!
package Chapter6;
import java.io.*;
public class fileNavigation2 {
public static void main(String[] args) {
File dir = new File("C:\\testing");
System.out.println(dir.isDirectory());
try {
File file = new File(dir, "Test.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
String s = "Add1,";
String s2 = "Add2\n";
String str;
while((str = br.readLine()) != null) {
StringBuffer sb = new StringBuffer(str);
sb.append(s + s2);
String y = sb.toString();
System.out.println(sb);
System.out.println("Appending");
bw.write(y);
bw.close();
System.out.println("Done");
}catch(IOException e) {}
}First, thanks a lot for your feedback. The code makes a lot of sense but it does not update the content of my Test.txt file.
I only edited the line of code that creates the new file so that it could find the location of the file.
Scanner file = new Scanner(new File("C:\\testing",fileName));==============================
The code now looks like:
import java.io.*;
import java.util.*;
public class Main {
static void appendTo(String fileName, String[] newLines) throws IOException {
List<String> allLines = getLinesFrom(fileName);
for(String line : newLines) {
allLines.add(line);
writeLinesTo(fileName, allLines);
static List<String> getLinesFrom(String fileName) throws IOException {
List<String> lines = new ArrayList<String>();
Scanner file = new Scanner(new File("C:\\testing",fileName));
while(file.hasNextLine()) {
lines.add(file.nextLine());
file.close();
System.out.println(lines);
return lines;
static void writeLinesTo(String fileName, List<String> lines) throws IOException {
BufferedWriter out = new BufferedWriter(new FileWriter(fileName));
for(String line : lines) {
out.write(line);
out.write(System.getProperty("line.separator"));
out.close();
public static void main(String[] args) {
String fileName = "Test.txt";
String[] extraLines = {
"a new line",
"and yet another new line"
try {
appendTo(fileName, extraLines);
System.out.println("Done.");
} catch (IOException e) {
e.printStackTrace();
}Again, thanks for the help. -
Reading a Random Line from a Text File
Hello,
I have a program that reads from a text file words. I currently have a text file around 800KB of words. The problem is, if I try to load this into an arraylist so I can use it in my application, it takes wayy long to load. I was wondering if there was a way to just read a random line from the text file.
Here is my code, and the text file that the program reads from is called 'wordFile'
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class WordColor extends JFrame{
public WordColor(){
super("WordColor");
setSize(1000,500);
setVisible(true);
add(new WordPanel());
public static void main(String[]r){
JFrame f = new WordColor();
class WordPanel extends JPanel implements KeyListener{
private Graphics2D pane;
private Image img;
private char[]characterList;
private CharacterPosition[]positions;
private int charcounter = 0;
private String initialWord;
private File wordFile = new File("C:\\Documents and Settings\\My Documents\\Java\\projects\\WordColorWords.txt");
private FontMetrics fm;
private javax.swing.Timer timer;
public final static int START = 20;
public final static int delay = 10;
public final static int BOTTOMLINE = 375;
public final static int buffer = 15;
public final static int distance = 4;
public final static Color[] colors = new Color[]{Color.red,Color.blue,Color.green,Color.yellow,Color.cyan,
Color.magenta,Color.orange,Color.pink};
public static String[] words;
public static int descent;
public static int YAXIS = 75;
public static int SIZE = 72;
public WordPanel(){
words = readWords();
setLayout(new BorderLayout());
initialWord = getWord();
characterList = new char[initialWord.length()];
for (int i=0; i<initialWord.length();i++){
characterList[i] = initialWord.charAt(i);
setFocusable(true);
addKeyListener(this);
timer = new javax.swing.Timer(delay,new ActionListener(){
public void actionPerformed(ActionEvent evt){
YAXIS += 1;
drawWords();
if (YAXIS + descent - buffer >= BOTTOMLINE) lose();
if (allColorsOn()) win();
public void paintComponent(Graphics g){
super.paintComponent(g);
if (img == null){
img = createImage(getWidth(),getHeight());
pane = (Graphics2D)img.getGraphics();
pane.setColor(Color.white);
pane.fillRect(0,0,getWidth(),getHeight());
pane.setFont(new Font("Arial",Font.BOLD,SIZE));
pane.setColor(Color.black);
drawThickLine(pane,getWidth(),5);
fm = g.getFontMetrics(new Font("Arial",Font.BOLD,SIZE));
descent = fm.getDescent();
distributePositions();
drawWords();
timer.start();
g.drawImage(img,0,0,this);
private void distributePositions(){
int xaxis = START;
positions = new CharacterPosition[characterList.length];
int counter = 0;
for (char c: characterList){
CharacterPosition cp = new CharacterPosition(c,xaxis, Color.black);
positions[counter] = cp;
counter++;
xaxis += fm.charWidth(c)+distance;
private void drawThickLine(Graphics2D pane, int width, int thickness){
pane.setColor(Color.black);
for (int j = BOTTOMLINE;j<BOTTOMLINE+1+thickness;j++){
pane.drawLine(0,j,width,j);
private void drawWords(){
pane.setColor(Color.white);
pane.fillRect(0,0,getWidth(),getHeight());
drawThickLine(pane,getWidth(),5);
for (CharacterPosition cp: positions){
int x = cp.getX();
char print = cp.getChar();
pane.setColor(cp.getColor());
pane.drawString(""+print,x,YAXIS);
repaint();
private boolean allColorsOn(){
for (CharacterPosition cp: positions){
if (cp.getColor() == Color.black) return false;
return true;
private Color randomColor(){
int rand = (int)(Math.random()*colors.length);
return colors[rand];
private void restart(){
charcounter = 0;
for (CharacterPosition cp: positions){
cp.setColor(Color.black);
private void win(){
timer.stop();
newWord();
private void newWord(){
pane.setColor(Color.white);
pane.fillRect(0,0,getWidth(),getHeight());
repaint();
drawThickLine(pane,getWidth(),5);
YAXIS = 75;
initialWord = getWord();
characterList = new char[initialWord.length()];
for (int i=0; i<initialWord.length();i++){
characterList[i] = initialWord.charAt(i);
distributePositions();
charcounter = 0;
drawWords();
timer.start();
private void lose(){
timer.stop();
pane.setColor(Color.white);
pane.fillRect(0,0,getWidth(),getHeight());
pane.setColor(Color.red);
pane.drawString("Sorry, You Lose!",50,150);
repaint();
removeKeyListener(this);
final JPanel p1 = new JPanel();
JButton again = new JButton("Play Again?");
p1.add(again);
add(p1,"South");
p1.setBackground(Color.white);
validate();
again.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
remove(p1);
addKeyListener(WordPanel.this);
newWord();
private String getWord(){
int rand = (int)(Math.random()*words.length);
return words[rand];
private String[] readWords(){
ArrayList<String> arr = new ArrayList<String>();
try{
BufferedReader buff = new BufferedReader(new FileReader(wordFile));
try{
String line = null;
while (( line = buff.readLine()) != null){
line = line.toUpperCase();
arr.add(line);
finally{
buff.close();
catch(Exception e){e.printStackTrace();}
Object[] objects = arr.toArray();
String[] words = new String[objects.length];
int count = 0;
for (Object o: objects){
words[count] = (String)o;
count++;
return words;
public void keyPressed(KeyEvent evt){
char tempchar = evt.getKeyChar();
String character = ""+tempchar;
if (character.equalsIgnoreCase(""+positions[charcounter].getChar())){
positions[charcounter].setColor(randomColor());
charcounter++;
else if (evt.isShiftDown()){
evt.consume();
else{
restart();
drawWords();
public void keyTyped(KeyEvent evt){}
public void keyReleased(KeyEvent evt){}
class CharacterPosition{
private int xaxis;
private char character;
private Color color;
public CharacterPosition(char c, int x, Color col){
xaxis = x;
character = c;
color = col;
public int getX(){
return xaxis;
public char getChar(){
return character;
public Color getColor(){
return color;
public void setColor(Color c){
color = c;
}I thought that maybe serializing the ArrayList might be faster than creating the ArrayList by iterating over each line in the text file. But alas, I was wrong. Here's my code anyway:
class WordList extends ArrayList<String>{
long updated;
WordList readWordList(File file) throws Exception{
WordList list = new WordList();
BufferedReader in = new BufferedReader(new FileReader(file));
String line = null;
while ((line = in.readLine()) != null){
list.add(line);
in.close();
list.updated = file.lastModified();
return list;
WordList wordList;
File datFile = new File("words.dat");
File txtFile = new File("input.txt");
if (datFile.exists()){
ObjectInputStream input = new ObjectInputStream(new FileInputStream(datFile));
wordList = (WordList)input.readObject();
if (wordList.updated < txtFile.lastModified()){
//if the text file has been updated, re-read it
wordList = readWordList(txtFile);
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(datFile));
output.writeObject(wordList);
output.close();
} else {
//serialized list does not exist--create it
wordList = readWordList(txtFile);
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(datFile));
output.writeObject(wordList);
output.close();
}The text file contained one random sequence of letters per line. For example:
hwnuu
nhpgaucah
zfbylzt
hwnc
gicgwkhStats:
Text file size: 892K
Serialized file size: 1.1MB
Time to read from text file: 795ms
Time to read from serialized file: 1216ms -
Script to get the first word on each page
Is there a script that would make a list of the first word of each page (or, preferably, create a text box on each page and place the next page's word in that)? My document's all in one story with one text frame on each page, although there are several other frames (header, page number) applied through master pages.
You wrote: I changed the numbers to "8.0425in", "4.5681in", "8.1275in", "5.4319in" and it mostly worked - it placed the box at exactly 5 inches (X) and at 8.085 inches (Y) instead of 4.5681 inches. Any idea why?
No. I cannot reproduce the error you describe. I assume you've checked your numbers very closely in the script--I don't normally indicate measurements as strings.
you wrote: Something wasn't working with the styling - it kept freezing the program -
What do you mean by "freezing the program"? Is there a specific error message?
The paragraph style is named "firstword" and is all lowercase letters?
firstword paragraph style is NOT in a paragraph style group, right?
Is the first word on any page too long when formatted with the paragraph style "firstword" to fit in the text frame? -
Mail - Auto capitalize first word in each sentence
When composing a message in mail is there a way to turn on auto capitalization for the word beginning each sentence?
As far as I can tell you cant auto capitalize the first word of each sentence. I did however find out how to turn "i" into "I in case that is bugging you as well
Go into System Preferences
Click on Language and Text
Choose the "Text" box on the menu bar
It will bring you to the text substitution thingamajig where you can replace "i" with an "I". Once done it will work on Mail as well as most applications system wide.
Hope that helps a little -
Creating a JButton for each line in a txt file
I need to know how to creating a JButton for each line in a txt file then add an actionListener to the number of buttons (note they are in a JTable). Here is a clipet of code thanx for the help (note that this is one part of a program i am making there are 2 more classes. If u need them just ask) Thanx:
class Diary extends JFrame implements ActionListener {
private JTextArea note;
private JTextField name;
private JMenuBar menu = new JMenuBar();
private JMenu file, edit, font, background, tcolor, settings, help;
private JMenuItem nu, copy, paste, save, exit, b8, b10, b12, b14, b16, b18, b20, b24, b30, bblue, bred, bgreen, bpink, cblue, cred, cgreen, cpink, eset, nver, using, about;
private String[] columnNames = {
"File"
private Vector dat = new Vector();
private JTable filetable;
public Diary() {
setSize(new Dimension(500, 500));
setTitle("Diary 2.00");
file = new JMenu("File");
menu.add(file);
nu = new JMenuItem("new");
nu.addActionListener(this);
file.add(nu);
file.add(new JSeparator());
copy = new JMenuItem("copy");
copy.addActionListener(this);
file.add(copy);
paste = new JMenuItem("paste");
paste.addActionListener(this);
file.add(paste);
file.add(new JSeparator());
save = new JMenuItem("Save");
save.addActionListener(this);
file.add(save);
file.add(new JSeparator());
exit = new JMenuItem("exit");
exit.addActionListener(this);
file.add(exit);
edit = new JMenu("Edit");
menu.add(edit);
font = new JMenu("font");
edit.add(font);
b8 = new JMenuItem("8");
b8.addActionListener(this);
font.add(b8);
b10 = new JMenuItem("10");
b10.addActionListener(this);
font.add(b10);
b12 = new JMenuItem("12");
b12.addActionListener(this);
font.add(b12);
b14 = new JMenuItem("14");
b14.addActionListener(this);
font.add(b14);
b16 = new JMenuItem("16");
b16.addActionListener(this);
font.add(b16);
b18 = new JMenuItem("18");
b18.addActionListener(this);
font.add(b18);
b20 = new JMenuItem("20");
b20.addActionListener(this);
font.add(b20);
b24 = new JMenuItem("24");
b24.addActionListener(this);
font.add(b24);
b30 = new JMenuItem("30");
b30.addActionListener(this);
font.add(b30);
background = new JMenu("background");
edit.add(background);
bblue = new JMenuItem("blue");
bblue.addActionListener(this);
background.add(bblue);
bred = new JMenuItem("red");
bred.addActionListener(this);
background.add(bred);
bgreen = new JMenuItem("green");
bgreen.addActionListener(this);
background.add(bgreen);
bpink = new JMenuItem("pink");
bpink.addActionListener(this);
background.add(bpink);
tcolor = new JMenu("text color");
edit.add(tcolor);
cblue = new JMenuItem("blue");
cblue.addActionListener(this);
tcolor.add(cblue);
cred = new JMenuItem("red");
cred.addActionListener(this);
tcolor.add(cred);
cgreen = new JMenuItem("green");
cgreen.addActionListener(this);
tcolor.add(cgreen);
cpink = new JMenuItem("pink");
cpink.addActionListener(this);
tcolor.add(cpink);
settings = new JMenu("Settings");
menu.add(settings);
eset = new JMenuItem("Edit Settings");
eset.addActionListener(this);
settings.add(eset);
help = new JMenu("Help");
menu.add(help);
using = new JMenuItem("Using");
using.addActionListener(this);
help.add(using);
about = new JMenuItem("About");
about.addActionListener(this);
help.add(about);
help.add(new JSeparator());
nver = new JMenuItem("new Versions");
nver.addActionListener(this);
help.add(nver);
note = new JTextArea("");
try {
BufferedReader filein = new BufferedReader(new FileReader("files.txt"));
String sfile;
while ((sfile = filein.readLine()) != null) {
//add buttons per each line of the txt file and show em
catch (FileNotFoundException ioe) {
JOptionPane.showMessageDialog(null, "Iternal Error, contact [email protected] if the error persists", "", JOptionPane.WARNING_MESSAGE);
catch (IOException ioe) {
JOptionPane.showMessageDialog(null, "Iternal Error, contact [email protected] if the error persists", "", JOptionPane.WARNING_MESSAGE);JOptionPane.showMessageDialog(null, "Iternal Error, contact [email protected] if the error persists", "", JOptionPane.WARNING_MESSAGE);
String[][] data = new String[dat.size()][];
for (int x = 0; x < dat.size(); x++) {
data[x] = (String[])dat.get(x);
filetable = new JTable(data, columnNames);
filetable.setPreferredScrollableViewportSize(new Dimension(100, 500));
JScrollPane scrollpane = new JScrollPane(filetable);
name = new JTextField("diary");
JPanel main = new JPanel(new GridLayout(0, 1));
getContentPane().add(note);
getContentPane().add(name, BorderLayout.SOUTH);
getContentPane().add(scrollpane, BorderLayout.WEST);
setJMenuBar(menu);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == nu) {
int nuask = JOptionPane.showConfirmDialog(Diary.this, "Are you sure you want to make a new entry?\nThis will erease any unsaved entry's!!");
if (nuask == JOptionPane.YES_OPTION) {
note.setText("");
note.setBackground(Color.WHITE);
note.setForeground(Color.BLACK);
if (e.getSource() == copy) {
note.copy();
if (e.getSource() == paste) {
note.paste();
if (e.getSource() == save) {
try {
String sn = name.getText();
FileWriter outputStream = new FileWriter("saved/" + sn + ".txt");
setTitle("Diary 1.00 : " + sn);
outputStream.write(note.getText());
outputStream.close();
catch(IOException ioe) {
System.out.println("IOException");
if (e.getSource() == exit) {
int exitask = JOptionPane.showConfirmDialog(Diary.this, "Are you sure you want to exit? Any unsaved entries will be deleted");
if (exitask == JOptionPane.YES_OPTION) {
System.exit(0);
if (e.getSource() == b8) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),8));
if (e.getSource() == b10) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),10));
if (e.getSource() == b12) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),12));
if (e.getSource() == b14) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),14));
if (e.getSource() == b18) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),18));
if (e.getSource() == b20) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),20));
if (e.getSource() == b24) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),24));
if (e.getSource() == b30) {
note.setFont(new Font(note.getFont().getName(),note.getFont().getStyle(),30));
if (e.getSource() == bblue) {
note.setBackground(Color.BLUE);
if (e.getSource() == bred) {
note.setBackground(Color.RED);
if (e.getSource() == bgreen) {
note.setBackground(Color.GREEN);
if (e.getSource() == bpink) {
note.setBackground(Color.PINK);
if (e.getSource() == cblue) {
note.setForeground(Color.BLUE);
if (e.getSource() == cred) {
note.setForeground(Color.RED);
if (e.getSource() == cgreen) {
note.setForeground(Color.GREEN);
if (e.getSource() == cpink) {
note.setForeground(Color.PINK);
if (e.getSource() == eset) {
new UserSettings().setVisible(true);
if (e.getSource() == about) {
JOptionPane.showMessageDialog(null, "Created by Collin Doering 2005 in Gr.9\n\nErrors:\n------------------------------------------------------------------\n1. No File Encryption\n2. No user and password Encryption", "", JOptionPane.INFORMATION_MESSAGE );
if (e.getSource() == nver) {
JOptionPane.showMessageDialog(null, "New Version |3.00| expected July, 2005\n\nNew Features\n----------------------------------------------\n1. File Encryption\n2. User File Encryption\n3. Full help dialog\n4. More Text changing features", "", JOptionPane.INFORMATION_MESSAGE);
if (e.getSource() == using) {
JOptionPane.showMessageDialog(null, "Go ask Collin Doering\[email protected]", "", JOptionPane.INFORMATION_MESSAGE );
THANK YOUso i still do not understand how i would create one
button per each line in a txt flle then read in the
file that the txt file specified.This assumes you know how many lines there are in the file.
If not, modify as per my prior post
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Testing extends JFrame
String[] linesInFile = {"Hello","World","Goodbye","Now"};
JButton[] btn = new JButton[linesInFile.length];
public Testing()
setLocation(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel jp = new JPanel(new GridLayout(0,1));
for(int x = 0; x < btn.length; x++)
btn[x] = new JButton(linesInFile[x]);//<---this would be where file.readLine() goes
jp.add(btn[x]);
btn[x].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(getContentPane(),ae.getActionCommand());}});
getContentPane().add(jp);
pack();
public static void main(String[] args){new Testing().setVisible(true);}
} -
Could not parse the file contents as a data set. There were too many variable names in the first line of the text file.
What are the Variables settings, what is the text file’s content, …?
-
Using ArrayList to store Lines in a text File
Hey Guys,
I have the following program that I am using to read a text file and store each word in each line in an ArrayList. But I am getting the following error;
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
at java.util.AbstractList$Itr.next(AbstractList.java:420)
at bus.OrderReader.parseLine(OrderReader.java:50)
at bus.OrderReader.main(OrderReader.java:32) The code is as follows;
package bus;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;
public class OrderReader {
static Collection bread = new ArrayList();
static Collection filling = new ArrayList();
static Iterator iter1 = filling.iterator();
static Iterator iter2 = bread.iterator();
private static int counter;
public static void main(String args[]){
Scanner s = null;
try {
s = new Scanner(new BufferedReader(new FileReader("/Users/admin/Documents/workspace2/OBS/WebContent/WriteMe.txt")));
s.useDelimiter("\r");
while(s.hasNext()) {
parseLine(s.next());
counter++;
s.close();
catch(FileNotFoundException e) {
System.out.println("cannot find the file");
//ignore for now
public static void parseLine(String line) {
Scanner lineScanner = new Scanner(line);
lineScanner.useDelimiter("#");
bread.add(lineScanner.next());
filling.add(lineScanner.next());
System.out.println(iter1.next());
System.out.println(iter2.next());
}I do not understand why this does not work. Can someone please point me in the right direction?
Thank You
JazInstead of doing this:
bread.add(lineScanner.next());
filling.add(lineScanner.next());
System.out.println(iter1.next());
System.out.println(iter2.next());where presumably you're just printing what you just
barely added, do this:
Object breadObject = lineScanner.next();
Object fillingObject = lineScanner.next();
bread.add(breadObject);
filling.add(fillingObject);
System.out.println(breadObject);
System.out.println(fillingObject);
And get rid of the now unused iterators.Im not sure I understand quiet what is happening here. Are you creating a primitive data type of type Object and then storing all the values in that variable?
why would I do this when this only allows me to view the very last element that was added to the list? I want to view the entire list.
Thanks
Jaz
Message was edited by:
DontKnowJack -
Random Line reading in text file
I am trying to read a random line in a text file but every time i read it it reads first line of the file any one can help me what is the problem in the code is or provide me with a new code.
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
File file = new File("word.txt");
if(!file.exists())
System.out.println("File does not exist.");
System.exit(0);
try{
//Open the file for reading
RandomAccessFile raf = new RandomAccessFile(file, "r");
raf.seek(file.length()); //Seek to end of file
System.out.println("Read full line: " + raf.readLine());
//str2 is a String
str2 = str2 + raf.readLine();
System.out.println(""+str2);
raf.close();
System.out.println("Successfully");
catch(IOException ioe)
System.out.println(ioe.getMessage());
my text file look like in this format
mind
hate
Abhor
Bigot
narrow
prejudiced
person
Counterfeit
fake
false
give
voting
rights
Hamper
hinder
obstruct
Kindle
to
start
fire
harmful
poisonous
lethalNext time when posting code, please use code tags: http://forum.java.sun.com/help.jspa?sec=formatting
A RandomAccessFile has nothing to do with getting a (pseudo) random line number from a file.
You should also split things up in separate methods:
- a method for counting the number of lines in a file;
- a method to get the N-th line from a file.
In your main method, you call the method which counts the number of lines N in a file and then generate a (pseudo) random number between 1 and N. Use the java.util.Random class for this.
When you have generated that number, call the other method to get that specific line number.
Here's a small start:
import java.io.*;
import java.util.*;
public class Main {
public static String getLineNumber(int number) throws FileNotFoundException {
// your code here
public static int countLines(String fileName) throws FileNotFoundException {
// your code here
public static void main(String[] args) throws Exception {
int numberLines = countLines("word.txt");
Random generator = new Random();
int randomNumber = generator.nextInt(numberLines)+1;
String randomLine = getLineNumber(randomNumber);
System.out.println("Line "+randomNumber+" = '"+randomLine+"'");
}In both methods, you can use the java.util.Scanner class to read lines from the file.
Have a look at the API docs of the Scanner class:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html (including code samples!)
Good luck. -
Help!!! - Line Count in Text file
I need to write a program for an assignment due next week. I should read between 30 and 70 lines of text from a text file. Each line contains an integral number of words. The program is required to display all the words on each line in revers order: "pass before they can enter" to read "enter can they before pass". I can reverse the words but the issue of 30 - 70 lines is a problem. I have the following code. What I'm I doing wrong???
import java.io.*;
import java.util.*;
import java.util.StringTokenizer;
public class LineReaderVector{
public static void main(String args[])throws IOException{
BufferedReader in=new BufferedReader(new FileReader("inpfile.txt"));
LineNumberReader read=new LineNumberReader(new FileReader ("inpfile.txt"));
String thisLine;
int line=0;
while((thisLine=in.readLine()) !=null){
line=read.getLineNumber();
StringTokenizer st = new StringTokenizer(thisLine);
Vector v1=new Vector();
while (st.hasMoreTokens()){
String part= st.nextToken();
v1.addElement(part);
line++;
System.out.println("\n");
int size=v1.size()-1;
for(int i=size; i>-1; i--){
System.out.print(v1.elementAt(i).toString()+" ");
}To read a file line by line this should do:
try
BufferedReader br = new BufferedReader(new FileReader("inpfile.txt"));
String s = br.readLine();
while (s != null)
System.out.println(s);
s = br.readLine();
br.close();
catch (IOException ex)
ex.printStackTrace();
... -
Read one word at a time from a text file
I want to read one word at a time from a text file as it is done by "scanf &s" function in text based programme. It is not possible by " read from text" function. Suggest me function or method to solve this.
The simplest way is to use the spreadsheet string to array function with the space character as the delimiter.
Note that this won't work unless there is a space character between the words - it won't work with line feeds / carriage returns between the words but you could always split the string into lines first. You may also want to trim whitespace to remove any other non-visible characters (e.g. tab, line feeds) from around the word.
If you need something more sophisticated that splits based on whitespace (e.g. tab, new line) then you'll probably need to do something with searching the string for these characters (e.g. using a regular expression) and then splitting them yourself into an array.
Of course...if you actually want to just read one word at a time from the file rather than just split the file into words (I assumed you meant this), you will need to read the file byte by byte using the low level file IO functions, build a buffer of the bytes and check the character you've read to see if it a space.
Certified LabVIEW Architect, Certified TestStand Developer
NI Days (and A&DF): 2010, 2011, 2013, 2014
NI Week: 2012, 2014
Knowledgeable in all things Giant Tetris and WebSockets -
How to read some lines from a text file using java.
hi,
i m new to java and i want to read some lines from a text file based on some string occurrence in the file. This file to be read in steps.
we only want to read the file upto the first Occurrence of "TEXT" string.
How to do it ,,,
Kinldy give the code
Regards,
Sagar
this is the text file
dfgjdjj
sfjhjkd
ghjkdg
hjkdgh TEXT
ikeyt
ujt
jk
tyk TEXT
rukl
rHendawy wrote:
Since the word "TEXT" is formed of 4 letters, you would read the text file 4 bytes by four bytes. Wrong on two counts. First, the file may not be encoded 1 byte per character. It could be utf-16 in which case it would be two byte per character. Second, even if it were 1 byte per character, the string "Text" may not start on a 4 byte boundary.
Consider a FileInputStream object "fis" that points to your text file. use fis.read(byte[] array, int offset, int len) to read every four bytes. Convert the "TEXT" String into a byte array "TEXT".getBytes(), and yous the Arrays class to compare the equality of the read bytes with your "TEXT".getBytes()Wrong since it relies on my second point and will fail when fis.read(byte[] array, int offset, int len) does not read 4 bytes (as is no guaranteed to). Check the Javadoc. Also, the file may not be encoded with the default character encoding.
The problem is easily solved by reading a line at a time using a BufferedReader wrapping an InputStreamReader wrapping a FileInputStream and specifying the correct character encoding.
Edited by: sabre150 on Apr 29, 2009 2:13 PM
Maybe you are looking for
-
I have problems accessing apps installed in my iPad through iTunes 12
I have several apps installed in my iPad, among them Adobe Reader and AVPlayerHD. With the previous version of iTunes it was easy to access these apps and upload content directly to the apps in order to see this content on the iPad 3rd gen, model MD3
-
Mail goes to BULK folder , how to send it to the INBOX folder
When I try to send mail throgh the java mail concept it is going to the bulk folder , my requirment is to send the mail to the inbox , is anything i have to set to send the mail to the inbox. Thanx in advance Have a nice day.
-
I trasferred pictures over from my computer to my iPhone 5 and now i cannot delete these pictures from my phone, and i cannot work out how to delete them from my phone by the computer as the pictures do not show up in my files on the computer, how ca
-
I have a iPod touch 4 and updated the iOS 6 and always when I try to search for an app in the App Store it won't let me because it always exits the App Store. Why is this happening?
-
Unable to open form in Form Builer
Hi folks, It might me an old issue. I have gone through many threads and unable to find the exact solution. Appreciate if someone can help! Environment: O/S - Windows 7 professional - 32bit IDS - 10.1.2.0.2 Installation Steps: - Installed IDS - 10.1.