Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > very new to java string array question

Reply
Thread Tools

very new to java string array question

 
 
jason
Guest
Posts: n/a
 
      12-18-2009
hello, below is my code. the error message is:
Exception in thread "main" java.lang.NullPointerException
at WebsiteReader.main(WebsiteReader.java:23)

----program below--
import java.io.*;
import java.net.URL;

public class WebsiteReader
{
public static BufferedReader read(String url) throws Exception{
return new BufferedReader(
new InputStreamReader(
new URL(url).openStream()));
}

public static void main (String[] args) throws Exception{
BufferedReader reader = read("http://www.google.com");
String line = reader.readLine();
int Counter=0;
String MyStrArray[]= null;


while (line != null) {
System.out.println(line);
System.out.println(String.valueOf(line));
line = reader.readLine();
MyStrArray[Counter]= line;

Counter=Counter+1;
}
System.out.println(Counter);
}
}
 
Reply With Quote
 
 
 
 
Eric Sosman
Guest
Posts: n/a
 
      12-18-2009
On 12/18/2009 10:52 AM, jason wrote:
> hello, below is my code. the error message is:
> Exception in thread "main" java.lang.NullPointerException
> at WebsiteReader.main(WebsiteReader.java:23)
>
> ----program below--
> import java.io.*;
> import java.net.URL;
>
> public class WebsiteReader
> {
> public static BufferedReader read(String url) throws Exception{
> return new BufferedReader(
> new InputStreamReader(
> new URL(url).openStream()));
> }
>
> public static void main (String[] args) throws Exception{
> BufferedReader reader = read("http://www.google.com");
> String line = reader.readLine();
> int Counter=0;
> String MyStrArray[]= null;


Here you declare MyStrArray (poor choice of name, but
that's another topic) as a variable that can refer to an
array of references to String objects. You also set the
variable to null, meaning that it does not refer to anything
at all right now: There is no array of String anywhere, just
a variable that could refer to such a thing if you were to
create one.

>
>
> while (line != null) {
> System.out.println(line);
> System.out.println(String.valueOf(line));
> line = reader.readLine();
> MyStrArray[Counter]= line;


And here you try to store a String reference in the array
that MyStrArray refers to. Unfortunately, MyStrArray is null
and does not refer to any array. Boom!

> Counter=Counter+1;
> }
> System.out.println(Counter);
> }
> }


I'm not sure how to advise you to change your program,
because the real problem appears to be that you have not yet
grasped some rather fundamental notions about Java, including

- Arrays are objects, and like all objects must be created
before being used.

- An array, once created, has a fixed size: You cannot just
add or remove array elements. You can change the values
of those elements, but the elements themselves are always
there until the array itself is destroyed.

- The variables your program manipulates are primitives (int,
double, and so on) or are references that can point to
object instances (arrays, Strings, BufferedReaders, ...).

- A reference variable whose value is null points to nothing
at all. You cannot use that variable to refer to an object
until you first create an object and make the variable point
to it.

I have the feeling that until you've grokked these (and other)
basic bits of Java knowledge, correcting your program will just
give you a chunk of code that you won't understand and won't know
how to modify further. Back to the textbook; eventually, this
will all make more sense than it does now.

--
Eric Sosman
lid
 
Reply With Quote
 
 
 
 
Lew
Guest
Posts: n/a
 
      12-18-2009
Eric Sosman wrote:
> * * *I have the feeling that until you've grokked these (and other)
> basic bits of Java knowledge, correcting your program will just
> give you a chunk of code that you won't understand and won't know
> how to modify further. *Back to the textbook; eventually, this
> will all make more sense than it does now.
>


Additionally:
<http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html>
<http://java.sun.com/developer/onlineTraining/index.jsp>

--
Lew
 
Reply With Quote
 
jason
Guest
Posts: n/a
 
      12-18-2009
On Dec 18, 11:10*am, Eric Sosman <esos...@ieee-dot-org.invalid> wrote:
> On 12/18/2009 10:52 AM, jason wrote:
>
>
>
> > hello, below is my code. the error message is:
> > Exception in thread "main" java.lang.NullPointerException
> > * *at WebsiteReader.main(WebsiteReader.java:23)

>
> > ----program below--
> > import java.io.*;
> > import java.net.URL;

>
> > public class WebsiteReader
> > {
> > * *public static BufferedReader read(String url) throws Exception{
> > * * * * * *return new BufferedReader(
> > * * * * * * * * * *new InputStreamReader(
> > * * * * * * * * * * * * * *new URL(url).openStream()));
> > * * * * * *}

>
> > * *public static void main (String[] args) throws Exception{
> > * * * * * *BufferedReader reader = read("http://www.google.com");
> > * * * * * *String line = reader.readLine();
> > * * * * * *int Counter=0;
> > * * * * * *String MyStrArray[]= null;

>
> * * *Here you declare MyStrArray (poor choice of name, but
> that's another topic) as a variable that can refer to an
> array of references to String objects. *You also set the
> variable to null, meaning that it does not refer to anything
> at all right now: There is no array of String anywhere, just
> a variable that could refer to such a thing if you were to
> create one.
>
>
>
> > * * * * * *while (line != null) {
> > * * * * * * * * * *System.out.println(line);
> > * * * * * * * * * *System.out.println(String.valueOf(line));
> > * * * * * * * * * *line = reader.readLine();
> > * * * * * * * * * *MyStrArray[Counter]= line;

>
> * * *And here you try to store a String reference in the array
> that MyStrArray refers to. *Unfortunately, MyStrArray is null
> and does not refer to any array. *Boom!
>
> > * * * * * * * * * *Counter=Counter+1;
> > * * * * * *}
> > * *System.out.println(Counter);
> > * *}
> > }

>
> * * *I'm not sure how to advise you to change your program,
> because the real problem appears to be that you have not yet
> grasped some rather fundamental notions about Java, including
>
> * * *- Arrays are objects, and like all objects must be created
> * * * *before being used.
>
> * * *- An array, once created, has a fixed size: You cannot just
> * * * *add or remove array elements. *You can change the values
> * * * *of those elements, but the elements themselves are always
> * * * *there until the array itself is destroyed.
>
> * * *- The variables your program manipulates are primitives (int,
> * * * *double, and so on) or are references that can point to
> * * * *object instances (arrays, Strings, BufferedReaders, ...).
>
> * * *- A reference variable whose value is null points to nothing
> * * * *at all. *You cannot use that variable to refer to an object
> * * * *until you first create an object and make the variable point
> * * * *to it.
>
> * * *I have the feeling that until you've grokked these (and other)
> basic bits of Java knowledge, correcting your program will just
> give you a chunk of code that you won't understand and won't know
> how to modify further. *Back to the textbook; eventually, this
> will all make more sense than it does now.
>
> --
> Eric Sosman
> esos...@ieee-dot-org.invalid


i fixed it. thank you for taking the time to praise your own knowledge
of java.
 
Reply With Quote
 
Lew
Guest
Posts: n/a
 
      12-18-2009
jason wrote:
> i [sic] fixed it. thank you for taking the time to praise your own knowledge
> of java [sic].


Did you mean that to be as snide as it sounded?

--
Lew

 
Reply With Quote
 
neuneudr@yahoo.fr
Guest
Posts: n/a
 
      12-18-2009

If you plan to crawl the Web from
Java you'd better fake your user agent, otherwise
you're in for quite some surprises

URL url = new URL("http://www.google.com");
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.1... bla bla
bla"

Just search for a very common user agent and use that
one. Been there, done that: it shall works much better
faking the user agent.

Oh, don't pay too much attention to the snobbish
attitude of people in this group, c.l.j.p. is
full of people full of themselves

They have in common that they're both JLS *and* grammar
nazis.

It's crazy but you can find forums where you have discussion
where several Extactiq people do participate and where people
will gently take the time to answer your questions without
feeling like they're there to show off their knowledge.

The second most important thing you'll find in here is that
people consider every Gosling brain fart to be the holy gospel.

I've had both IBM JVM engineers and Apple JVM engineers answer
me and participate in discussions with me in a much more friendly
and instructive manner than what you'll get here.

Here you'll get "RTFM / RTFJLS" type answers accompanied with
grammar-naziness (as exemplified by Lew's very constructive
participation in this thread where he quotes your lowercase 'i'
to follow it by a [sic]).

Rant off, fake your user agent

 
Reply With Quote
 
Lew
Guest
Posts: n/a
 
      12-18-2009
neune...@yahoo.fr wrote:
> Oh, don't pay too much attention to the snobbish
> attitude of people in this group, c.l.j.p. is
> full of people full of themselves
>


That's the pot calling the kettle black. Vas-t'en, cochon.

> They have in common that they're both JLS *and* grammar
> nazis.
>


Godwin's Law.
<http://en.wikipedia.org/wiki/Godwin%27s_Law>

> It's crazy but you can find forums where you have discussion
> where several Extactiq people do participate and where people
> will gently take the time to answer your questions without
> feeling like they're there to show off their knowledge.
>


It's even crazier when someone like Eric Sosman provides a correct,
helpful answer to what looks like a sincere question, then someone
like you comes along and starts spouting off unfounded hostile
nonsense as if he'd done something wrong.

> The second most important thing you'll find in here is that
> people consider every Gosling brain fart to be the holy gospel.
>


What the ...? What are you on about? There's been no mention of
Gosling other than your comment here, and certainly no dogma in this
thread other than your trollish crud.

> I've had both IBM JVM engineers and Apple JVM engineers answer
> me and participate in discussions with me in a much more friendly
> and instructive manner than what you'll get here.
>


You aren't setting any kind of friendly or instructive example, unlike
Eric Sosman, who gave a very friendly and instructive answer to the
OP's question.

> Here you'll get "RTFM / RTFJLS" type answers accompanied with
> grammar-naziness (as exemplified by Lew's very constructive
> participation in this thread where he quotes your lowercase 'i'
> to follow it by a [sic]).
>


Hush, child, the grownups are talking. Fermes ta bec.

--
Lew

 
Reply With Quote
 
Arved Sandstrom
Guest
Posts: n/a
 
      12-19-2009
jason wrote:
> On Dec 18, 11:10 am, Eric Sosman <esos...@ieee-dot-org.invalid> wrote:
>> On 12/18/2009 10:52 AM, jason wrote:
>>
>>
>>
>>> hello, below is my code. the error message is:
>>> Exception in thread "main" java.lang.NullPointerException
>>> at WebsiteReader.main(WebsiteReader.java:23)
>>> ----program below--
>>> import java.io.*;
>>> import java.net.URL;
>>> public class WebsiteReader
>>> {
>>> public static BufferedReader read(String url) throws Exception{
>>> return new BufferedReader(
>>> new InputStreamReader(
>>> new URL(url).openStream()));
>>> }
>>> public static void main (String[] args) throws Exception{
>>> BufferedReader reader = read("http://www.google.com");
>>> String line = reader.readLine();
>>> int Counter=0;
>>> String MyStrArray[]= null;

>> Here you declare MyStrArray (poor choice of name, but
>> that's another topic) as a variable that can refer to an
>> array of references to String objects. You also set the
>> variable to null, meaning that it does not refer to anything
>> at all right now: There is no array of String anywhere, just
>> a variable that could refer to such a thing if you were to
>> create one.
>>
>>
>>
>>> while (line != null) {
>>> System.out.println(line);
>>> System.out.println(String.valueOf(line));
>>> line = reader.readLine();
>>> MyStrArray[Counter]= line;

>> And here you try to store a String reference in the array
>> that MyStrArray refers to. Unfortunately, MyStrArray is null
>> and does not refer to any array. Boom!
>>
>>> Counter=Counter+1;
>>> }
>>> System.out.println(Counter);
>>> }
>>> }

>> I'm not sure how to advise you to change your program,
>> because the real problem appears to be that you have not yet
>> grasped some rather fundamental notions about Java, including
>>
>> - Arrays are objects, and like all objects must be created
>> before being used.
>>
>> - An array, once created, has a fixed size: You cannot just
>> add or remove array elements. You can change the values
>> of those elements, but the elements themselves are always
>> there until the array itself is destroyed.
>>
>> - The variables your program manipulates are primitives (int,
>> double, and so on) or are references that can point to
>> object instances (arrays, Strings, BufferedReaders, ...).
>>
>> - A reference variable whose value is null points to nothing
>> at all. You cannot use that variable to refer to an object
>> until you first create an object and make the variable point
>> to it.
>>
>> I have the feeling that until you've grokked these (and other)
>> basic bits of Java knowledge, correcting your program will just
>> give you a chunk of code that you won't understand and won't know
>> how to modify further. Back to the textbook; eventually, this
>> will all make more sense than it does now.
>>
>> --
>> Eric Sosman
>> esos...@ieee-dot-org.invalid

>
> i fixed it. thank you for taking the time to praise your own knowledge
> of java.


No reason to get so snippy. For starters, it's mostly *not* your code -
the part that works is taken from a DZone snippet
(http://snippets.dzone.com/posts/show/3553), which you might have had
the grace to acknowledge. The part that you are having problems with -
pretty basic Java, BTW, which is why Eric said what he said, and not
incorrectly - is the minimal stuff you added.

AHS
 
Reply With Quote
 
Roedy Green
Guest
Posts: n/a
 
      12-20-2009
On Fri, 18 Dec 2009 07:52:20 -0800 (PST), jason
<> wrote, quoted or indirectly quoted someone
who said :

>String MyStrArray[]= null;


you are missing a step in the initialisation. See
http://mindprod.com/jgloss/array.html

For general help on NullPointerExceptions see
http://mindprod.com/jgloss/runerrorm...INTEREXCEPTION
--
Roedy Green Canadian Mind Products
http://mindprod.com
The future has already happened, it just isn’t evenly distributed.
~ William Gibson (born: 1948-03-17 age: 61)
 
Reply With Quote
 
Roedy Green
Guest
Posts: n/a
 
      12-20-2009
On Fri, 18 Dec 2009 09:32:34 -0800 (PST), jason
<> wrote, quoted or indirectly quoted someone
who said :

>i fixed it. thank you for taking the time to praise your own knowledge
>of java.


See http://mindprod.com/jgloss/newsgroups.html

You just did something that could ensure you don't get responses in
future.
--
Roedy Green Canadian Mind Products
http://mindprod.com
The future has already happened, it just isn’t evenly distributed.
~ William Gibson (born: 1948-03-17 age: 61)
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Very very very basic question Peter C Programming 14 02-14-2005 09:46 AM
very very very long integer shanx__=|;- C Programming 19 10-19-2004 03:55 PM
very very very long integer Abhishek Jha C Programming 4 10-17-2004 08:19 AM
Quick Book file access very very very slow Thomas Reed Computer Support 7 04-09-2004 08:09 PM
very Very VERY dumb Question About The new Set( ) 's Raymond Arthur St. Marie II of III Python 4 07-27-2003 12:09 AM



Advertisments