I need a program written in Java. Write a simple line editor. Keep the entire te
ID: 3802155 • Letter: I
Question
I need a program written in Java.
Write a simple line editor. Keep the entire text in an ArrayList object, one line in a separate index position. Start the program with entering EDIT file, after which a prompt appears along with the line number. If the letter I is entered with a number n following it, then insert the text to be followed on line n. If I is not followed by a number, then insert the text on the current line. If D is entered with two numbers n and m,one n, or no number then delete lines n through m, line n, or the current line. Do the same with command L, which stands for listing lines. If A is entered, then append the text to the existing lines or the last line. Entry E signifies exit and saving a text file.
Example:
Input file: textin.txt
The first line
And another line
EDIT testin
1>The first line
2>
3> And another line
4> I 3
3> The second line
4> One more line
5> L
1>The first line
2>
3> The second line
4> One more line
5> And another line // This is now line 5, not 3
5> D 2 // line 5, since L was issued form line 5
4> L // line 4, since one line was deleted
1>The first line
2> The second line
3> One more line
4> And another line
5>D 2 4
4>L
1>The first line
2>A
1> not done yet
2> L
1>The first line not done yet
2> E
Output File: textout.txt
The first line not done yet
The lines that are left or changed after entering E must be saved in new text file. textout.txt
Explanation / Answer
import java.util.*;
import java.io.*;
public class Lineeditor
{
private static Node head;
class Node
{
int data;
Node next;
public Node()
{data = 0; next = null;}
public Node(int x, Node n)
{data = x; next =n;}
}
public void Displaylist(Node q)
{if (q != null)
{
System.out.println(q.data);
Displaylist(q.next);
}
}
public void Buildlist()
{Node q = new Node(0,null);
head = q;
String oneLine;
try{BufferedReader indata = new
BufferedReader(new InputStreamReader(System.in)); // read data from terminals
System.out.println("Please enter a command or a line of text: ");
oneLine = indata.readLine(); // always need the following two lines to read data
head.data = Integer.parseInt(oneLine);
for (int i=1; i<=head.data; i++)
{System.out.println("Please enter another command or a new line of text:");
oneLine = indata.readLine();
int num = Integer.parseInt(oneLine);
Node p = new Node(num,null);
q.next = p;
q = p;}
}catch(Exception e)
{ System.out.println("Error --" + e.toString());}
}
public static void main(String[] args)
{Lineeditor mylist = new Lineeditor();
mylist.Buildlist();
mylist.Displaylist(head);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.