Re: Java Delemma

  • From: Dave <davidct1209@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Mon, 28 Jun 2010 20:17:58 -0700

Hi,

I've marked my comments off with "// me:".

 while (inFile.hasNextLine())
 {
 inputString = inFile.nextLine();

 if (inputString.length() < 1)
 {
 outFile.println("\n");

// me:  this will advance the scanner by a line.  Try
// inputString = blanks + inputString ;
// instead to avoid advancing the scanner.
 inputString = blanks+inFile.nextLine();
 }
 outFile.println(inputString);
 // Printing line of text to file
 }

Btw, stylistically, people usually place comments before the referred
to line of code.

On 6/28/10, Joseph Lee <joseph.lee22590@xxxxxxxxx> wrote:
> Hi,
> Of course -  a NULL value would mean invalid data... I guess that would be
> the case for Java - in C++, it would be while (!= iifstreamobject.eof()).
> Cheers,
> Joseph
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Alex Hall
> Sent: Monday, June 28, 2010 7:56 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Re: Java Delemma
>
> I seem to remember eof not being so easy to search for. That is why
> checking that inFile.hasNext()!=null is usually the way to do it.
> Correct me if I am wrong.
>
> On 6/28/10, Joseph Lee <joseph.lee22590@xxxxxxxxx> wrote:
>> Hi Alex,
>> Can't he check for eof (end of file) to really make sure that the routine
>> does not insert a new line? If that's the case, then a while loop (or
>> similar in Java) with the condition of not eof could be used
>> (hypothetically).
>> Cheers,
>> Joseph
>>
>> -----Original Message-----
>> From: programmingblind-bounce@xxxxxxxxxxxxx
>> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Alex Hall
>> Sent: Monday, June 28, 2010 7:30 PM
>> To: programmingblind@xxxxxxxxxxxxx
>> Subject: Re: Java Delemma
>>
>> And the problem is that the final paragraph does not get the indent...
>> What if you changed the if statement to something like this:
>>  if (inputString.length() < 1)
>>  {
>>  outFile.println("\n");
>>  inputString = blanks+inputString;
>>  }
>>
>> I say this because, and I could be wrong here, each call to a file
>> object's nextLine() method moves you down a line in the file, as
>> though you had pressed the down arrow (assuming the arrows moved you
>> by full lines, not just as many words as are on one line of a
>> monitor). When you assign inputString to inFile.nextLine(), you press
>> this hypothetical down arrow. Then, when you assign inputString to
>> blanks+inFile.nextLine(), you are pressing the arrow again, so the
>> line may not be correct. I am not sure if that will do it, but it is
>> the only thing I see. Someone on the list will likely be able to
>> direct you better.
>>
>>
>> On 6/28/10, Gilbert Neiva <gneiva@xxxxxxx> wrote:
>>> Here is the entire class.
>>>
>>> import java.io.*; // importing input.output classes
>>> import java.util.Scanner;
>>>
>>> public class History
>>> {
>>>  static Scanner inFile; // Object that will read from file
>>>  static PrintWriter outFile; // object that will print to file
>>>
>>>  static void printHistory() throws IOException
>>>  // Start of void method
>>>  {
>>>   String inputString; // String for line of text in file
>>>   final String blanks = "     ";
>>>   // Five blanks inserted at beginning of paragraphs
>>>   inFile = new Scanner(new FileReader("history.d1"));
>>>   // Instantiating new scanner and new filereader object with
>>>   // history.d1 as argument
>>>   outFile = new PrintWriter(new FileWriter("history.d2"));
>>>   // Instantiating new printWriter object
>>>   // It will be used to write to a file
>>>   inputString = blanks+inFile.nextLine();
>>>   outFile.println(inputString);
>>>   // Printing 5 spaces plus line
>>>   // to file
>>>
>>>   while (inFile.hasNextLine())
>>>   {
>>>    inputString = inFile.nextLine();
>>>
>>>    if (inputString.length() < 1)
>>>    {
>>>    outFile.println("\n");
>>>    inputString = blanks+inFile.nextLine();
>>>    }
>>>    outFile.println(inputString);
>>>    // Printing line of text to file
>>>   }
>>>   inFile.close();
>>>   outFile.close();
>>>   // Closing files
>>>  }
>>>
>>>  public static void main(String[] args) throws IOException
>>>  {
>>>   printHistory();
>>>   // Calling method printHistory()
>>>  }
>>> } // End of class
>>>
>>> Gilbert Neiva
>>>
>>> ----- Original Message -----
>>> From: "Alex Hall" <mehgcap@xxxxxxxxx>
>>> To: <programmingblind@xxxxxxxxxxxxx>
>>> Sent: Monday, June 28, 2010 6:58 PM
>>> Subject: Re: Java Delemma
>>>
>>>
>>>>I don't follow. Could you post the entire loop so we can see what is
>>>> going on? Also, comments are welcomed! Remember that in Java, two
>>>> slashes mean that the rest of the line is a comment, so you could put
>>>> this in your file:
>>>> if(1a==0){ //check that a is really 0
>>>> System.out.print("var a is 0!"); //tell user
>>>> }//end if
>>>>
>>>> On 6/28/10, Gilbert Neiva <gneiva@xxxxxxx> wrote:
>>>>> I succeeded in making my application that inputs a file, prints 5
> spaces
>>>>> at
>>>>> the beginning of a paragraph and prints to a file with the new changes.
>>>>> Now
>>>>> I have another problem. The last paragraph of the input file has two
>>>>> blank
>>>>> lines above it. When my application runs and creates the output file,
>> the
>>>>> last paragraph of the output file has two lines above it, but the
>>>>> paragraph
>>>>> is not indented. The blank line just above the paragraph has 5 space
>>>>> characters in it. The rest of the output file is fine. The paragraphs
> in
>>>>> the
>>>>> output file that have no indent issues have one blank line above them
>>>>> which
>>>>> is what I want. I made an if statement inside a while statement to
>> detect
>>>>> the blank lines and print an extra blank line to the output file as
> well
>>>>> as
>>>>> store the new paragraph indented 5 spaces in a string varriable. The if
>>>>> statement is as follows.
>>>>>
>>>>> if inputString.length() < 1
>>>>> {
>>>>> outFile.println("\n");
>>>>> inputString = inFile.nextLine();
>>>>> }
>>>>>
>>>>> What do I do to correct my last paragraph so it is indented properly,
>> but
>>>>>
>>>>> I
>>>>> still have two blank lines above it?
>>>>>
>>>>> Gilbert Neiva
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Alex Hall" <mehgcap@xxxxxxxxx>
>>>>> To: <programmingblind@xxxxxxxxxxxxx>
>>>>> Sent: Monday, June 28, 2010 1:36 PM
>>>>> Subject: Re: Java Delemma
>>>>>
>>>>>
>>>>>> You want to use getNext(), not hasNext(). HasNext is a test to see if
>>>>>> any lines remain; you might say something like
>>>>>> while(file.hasNextLine()){
>>>>>> txt+=file.getNextLine();
>>>>>> }
>>>>>> Please note that it has been some time since I did Java, so the method
>>>>>> may not be called getNext, but it is something similar which you can
>>>>>> find in the docs.
>>>>>> The error is because hasNext returns true or false (a boolean) where
>>>>>> getNext returns an actual string, which is what you want.
>>>>>>
>>>>>>
>>>>>> On 6/28/10, Gilbert Neiva <gneiva@xxxxxxx> wrote:
>>>>>>> I'm trying to write an application which takes an input file, and
> adds
>>>>>>> 5
>>>>>>> blank spaces at the beginning of each paragraph. Then the application
>>>>>>> is
>>>>>>> to
>>>>>>> write to an output file with the new changes. The application will
>>>>>>> detect
>>>>>>> the beginning of a new paragraph because there is a blank line before
>>>>>>> it.
>>>>>>>
>>>>>>> I
>>>>>>> test for the blank using the following if statement.
>>>>>>>
>>>>>>> if inputString.length() < 1
>>>>>>> {
>>>>>>> inputString = blanks+inFile.hasNextLine();
>>>>>>> }
>>>>>>>
>>>>>>> When I tried to compile the application using the javac program, I
> get
>>>>>>> the
>>>>>>> following error.
>>>>>>>
>>>>>>> History.java:23: incompatible types
>>>>>>> found   : boolean
>>>>>>> required: java.lang.String
>>>>>>> inputString = inFile.hasNextLine();
>>>>>>> ^
>>>>>>> 1 error
>>>>>>>
>>>>>>> The source code for the application is below.
>>>>>>>
>>>>>>> import java.io.*; // importing input.output classes
>>>>>>>
>>>>>>> import java.util.Scanner;
>>>>>>>
>>>>>>>
>>>>>>> public class History
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> public static Scanner inFile;
>>>>>>>
>>>>>>> public static PrintWriter outFile;
>>>>>>>
>>>>>>>
>>>>>>> public static void main(String[] args)
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> String inputString; // Input string from a line in file
>>>>>>>
>>>>>>> final String blanks = " ";
>>>>>>>
>>>>>>> // Five blanks inserted at beginning of each paragraph
>>>>>>>
>>>>>>> inFile = new Scanner(new FileReader("history.d1"));
>>>>>>>
>>>>>>> // Instantiating new scanner and new filereader object with
>>>>>>>
>>>>>>> // history.d1 as argument
>>>>>>>
>>>>>>> outFile = new PrintWriter(new FileWriter("history.d2"));
>>>>>>>
>>>>>>> // Instantiating new printWriter object
>>>>>>>
>>>>>>> // It will be used to write to a file
>>>>>>>
>>>>>>> inputString = blanks+inFile.hasNextLine();
>>>>>>>
>>>>>>> outFile.println(inputString);
>>>>>>>
>>>>>>>
>>>>>>> while (inFile.hasNextLine())
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> inputString = inFile.hasNextLine();
>>>>>>>
>>>>>>>
>>>>>>> if (inputString.length() < 1)
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> inputString = blanks+inFile.hasNextLine();
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> outFile.println(inputString);
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> inFile.close();
>>>>>>>
>>>>>>> outFile.close();
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> What am I doing wrong?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Gilbert Neiva
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Have a great day,
>>>>>> Alex (msg sent from GMail website)
>>>>>> mehgcap@xxxxxxxxx; http://www.facebook.com/mehgcap
>>>>>> __________
>>>>>> View the list's information and change your settings at
>>>>>> //www.freelists.org/list/programmingblind
>>>>>>
>>>>>
>>>>> __________
>>>>> View the list's information and change your settings at
>>>>> //www.freelists.org/list/programmingblind
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Have a great day,
>>>> Alex (msg sent from GMail website)
>>>> mehgcap@xxxxxxxxx; http://www.facebook.com/mehgcap
>>>> __________
>>>> View the list's information and change your settings at
>>>> //www.freelists.org/list/programmingblind
>>>>
>>>>
>>>
>>> __________
>>> View the list's information and change your settings at
>>> //www.freelists.org/list/programmingblind
>>>
>>>
>>
>>
>> --
>> Have a great day,
>> Alex (msg sent from GMail website)
>> mehgcap@xxxxxxxxx; http://www.facebook.com/mehgcap
>> __________
>> View the list's information and change your settings at
>> //www.freelists.org/list/programmingblind
>>
>> No virus found in this incoming message.
>> Checked by AVG - www.avg.com
>> Version: 8.5.439 / Virus Database: 271.1.1/2968 - Release Date: 06/28/10
>> 18:35:00
>>
>> __________
>> View the list's information and change your settings at
>> //www.freelists.org/list/programmingblind
>>
>>
>
>
> --
> Have a great day,
> Alex (msg sent from GMail website)
> mehgcap@xxxxxxxxx; http://www.facebook.com/mehgcap
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 8.5.439 / Virus Database: 271.1.1/2968 - Release Date: 06/28/10
> 18:35:00
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
>
__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

Other related posts: