مشکل با java.lang.NullPointerException
سلام
دوستان من یه برنامه نوشتم که داخل متد main اون یه نمونه از یک کلاس درست کردم و یکی از متده ای اون کلاس را اجرا می کنم . این متد نیاز به یک آرگومان ورودی از نوع []String داره .
داخل برنامه main هم من یه متغییر از نوع []String دارم و به اون پاس میدم اما با پیغام خطای java.lang.NullPointerException مواجه میشم . حدس زدم که شاید اون متغییری که به عنوان پارامتر پاس میدم مقدار null داشته باشه به همین منظور یه حلقه for نوشتم و داخل اون دونه دونه ایتم های متغییر []String را خوندم و داخل کنسول چاپ کردم . همه چیز درست بود اون مقدار null نداشت اما نمیدونم چرا برنامم کار نمیکنه . کسی از دوستان چیزی به ذهنش میرسه؟ ممنون میشم راهنمایی بفرمایید . سپاس
public class WriteFile {
public void WriteOut(String[] arr) throws IOException
این همون کلاسی هستش که ازش یه آبجکت میسازم و متدش را فراخوانی میکنم .
این هم بخشی از کد main هستش :
String[] arr=new String[20];
arr=rf.input;
for(int i=1;i<10;i++)
{
System.out.print(arr[i]);
}
WriteFile wf=new WriteFile();
wf.WriteOut(arr);
جالبه حلقه for به درستی اجرا میشه اما 2 خط کد بعد پیغام خطا میده .
نقل قول: مشکل با java.lang.NullPointerException
اگه اون حلقه ی forای که میگی درست کار کنه و همه ی آبجکتهای ارایه رو تو کنسول چاپ کنه،
مشکل از تابع WriteOut هست،
کدشو کامل بزار ببنییم
نقل قول: مشکل با java.lang.NullPointerException
سلام
ممنون دوست عزیز بخاطر توجهت
این هم کد تابع WriteOut
منتظر کمک و راهنمایی همه دوستان هستم
سپاس
public void WriteOut(String[] arr) throws IOException
{
File f=new File("D:\\write.txt");
FileWriter fw=new FileWriter(f);
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<20;i++)
{
bw.write(arr[i]);
}
fw.close();
bw.close();
}
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
mehrdad85
سلام
ممنون دوست عزیز بخاطر توجهت
این هم کد تابع WriteOut
منتظر کمک و راهنمایی همه دوستان هستم
سپاس
public void WriteOut(String[] arr) throws IOException
{
File f=new File("D:\\write.txt");
FileWriter fw=new FileWriter(f);
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<20;i++)
{
bw.write(arr[i]);
}
fw.close();
bw.close();
}
آقا یه حرکتی بزن، این stack trace هم بزار ببینیم!
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
Ehsan rashydy
آقا یه حرکتی بزن، این stack trace هم بزار ببینیم!
سلام نمی دونم منظوزتون چیه ؟ ولی اگه بخواهید تو فایل بنویسید میتونید از کدی که نوشتم استفاده کنید
موفق باشید دوست عزیز:لبخندساده:
import java.io.*;
import java.net.URL;
public class WriteFile {
private File file;
private FileWriter fileWriter;
public WriteFile(String path) throws IOException {
file = new File(path);
if (!file.exists())
file.createNewFile();
fileWriter = new FileWriter(file);
}
public void write(String s) throws IOException {
fileWriter.write(s);
}
public void close() throws IOException {
fileWriter.close();
}
public static void main(String[] args) throws IOException {
WriteFile writeFile = new WriteFile("D:\\a.txt");
writeFile.write("salam\r\n");
writeFile.write("khobi?\r\n");
writeFile.close();
}
}
نقل قول: مشکل با java.lang.NullPointerException
سلام دوست عزیز این هم از stack trace
debug:
Exception in thread "main" java.lang.NullPointerException
at java.io.Writer.write(Writer.java:157)
at shaghayegh.WriteFile.WriteOut(WriteFile.java:25)
at shaghayegh.Shaghayegh.main(Shaghayegh.java:32)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
mehrdad85
سلام دوست عزیز این هم از stack trace
debug:
Exception in thread "main" java.lang.NullPointerException
at java.io.Writer.write(Writer.java:157)
at shaghayegh.WriteFile.WriteOut(WriteFile.java:25)
at shaghayegh.Shaghayegh.main(Shaghayegh.java:32)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
اقا میشه دقیقا بفرمایید می خواهید چیکار کنید ؟؟؟ اگه میخواهید که String str[] b رو تو فایل ذخیره کنید String str[] یک reference هست میتونید از ObjectOutputStream استفاده کنید و متد writeObject استفاده کنید:لبخندساده:
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
mehrdad85
سلام دوست عزیز این هم از stack trace
debug:
Exception in thread "main" java.lang.NullPointerException
at java.io.Writer.write(Writer.java:157)
at shaghayegh.WriteFile.WriteOut(WriteFile.java:25)
at shaghayegh.Shaghayegh.main(Shaghayegh.java:32)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
من هنوز نتونستم بفهمم که شما چرا null pointer exception میگیری،
میگم میخوای کل پروژه رو بزار یه بار خودم ببینم....
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
Ehsan rashydy
من هنوز نتونستم بفهمم که شما چرا null pointer exception میگیری،
میگم میخوای کل پروژه رو بزار یه بار خودم ببینم....
سلام
دوست عزیز من میخوام یک فایل خونده بشه و داخل []string ریخته بشه و بعد هم این []String داخل یک فایل نوشته بشه همین
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
a.seieddokht
اقا میشه دقیقا بفرمایید می خواهید چیکار کنید ؟؟؟ اگه میخواهید که String str[] b رو تو فایل ذخیره کنید String str[] یک reference هست میتونید از ObjectOutputStream استفاده کنید و متد writeObject استفاده کنید:لبخندساده:
سلام
دوست عزیز من میخوام یک []String را داخل یک فایل بنویسم
ممنون میشم بیشتر توضیح بدید و راهنمایی بفرماید که چطور میتونم با stream ها استفاده کنم؟
سپاس
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
mehrdad85
سلام
دوست عزیز من میخوام یک []String را داخل یک فایل بنویسم
ممنون میشم بیشتر توضیح بدید و راهنمایی بفرماید که چطور میتونم با stream ها استفاده کنم؟
سپاس
سلام خوب دوست عزیز من که بالا نوشتم باشه بیا اینم کدی که ارایه ای از رشته هارو بنویسه تو فایل
import java.io.*;
import java.net.URL;
public class WriteFile {
private File file;
private FileWriter fileWriter;
public WriteFile(String path) throws IOException {
file = new File(path);
if (!file.exists())
file.createNewFile();
fileWriter = new FileWriter(file);
}
public void write(String s) throws IOException {
fileWriter.write(s);
}
public void close() throws IOException {
fileWriter.close();
}
public static void main(String[] args) throws IOException {
WriteFile writeFile = new WriteFile("D:\\a.txt");
String []names = {"ali","reza","hasan","ahmad","hossien","bahram "};
for (int i = 0; i < names.length ;i++) {
writeFile.write(names[i] + "\r\n");
}
writeFile.close();
}
}
موفق باشید:لبخندساده:
نقل قول: مشکل با java.lang.NullPointerException
این هم یک روش دیگه از هر کدوم که دوست داری استفاده کن
import java.io.*;
import java.net.URL;
public class WriteFile {
private FileOutputStream fileOutputStream;
private ObjectOutputStream objectOutputStream;
public WriteFile(File file) throws Exception {
fileOutputStream = new FileOutputStream(file);
if (!file.exists())
file.createNewFile();
objectOutputStream = new ObjectOutputStream(fileOutputStream);
}
public void writeToFile(String []str) throws Exception {
for (int i = 0; i < str.length; i++){
fileOutputStream.write((str[i] + "\r\n").getBytes());
}
}
public void close() throws Exception{
objectOutputStream.close();
fileOutputStream.close();
}
public static void main(String[] args) throws Exception {
WriteFile writeFile = new WriteFile(new File("D:\\myFile.txt"));
String []str = {"ali","tehran","mashahd","ahmad","hasan","123454" };
writeFile.writeToFile(str);
writeFile.close();
}
}
نقل قول: مشکل با java.lang.NullPointerException
با سلام
public void WriteOut(String[] arr) throws IOException
{
File f=new File("D:\\write.txt");
FileWriter fw=new FileWriter(f);
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<20;i++)
{
bw.write(arr[i]);
}
fw.close();
bw.close();
}
این کد که میگی دو تا مشکل داره:
اولی اینکه ;()fw.close نیازی نیست ...
دومی اینکه بایدم null pointer exception پرتاب کند چونکه arr را بصورت آرگومانی میگیرد و اندازه اش میتواند در هر رنجی باشد که شما برای فهمیدن رنجش باید ار length استفاده کنید...
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
agusta.ada
با سلام
public void WriteOut(String[] arr) throws IOException
{
File f=new File("D:\\write.txt");
FileWriter fw=new FileWriter(f);
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<20;i++)
{
bw.write(arr[i]);
}
fw.close();
bw.close();
}
این کد که میگی دو تا مشکل داره:
اولی اینکه ;()fw.close نیازی نیست ...
دومی اینکه بایدم null pointer exception پرتاب کند چونکه arr را بصورت آرگومانی میگیرد و اندازه اش میتواند در هر رنجی باشد که شما برای فهمیدن رنجش باید ار length استفاده کنید...
سلام
دوست عزیز اگه از null pointer.. استفاده کنم باز هم این پیغام خطا را میده . یعنی اینکه واقعا وقتی رشته را پاس میدم به عنوان آرگومان باز هم رشته خالی هستش
نقل قول: مشکل با java.lang.NullPointerException
سلام
دوستان من کامل فایل و کدم را میزارم چون احساس میکنم دوستان راهنمایی میکنن اما من مشکل کلی ندارم بخشی از کد را زدم و الان به مشکل برخوردم چون حس میکنم یه جایی از کارم یه ایرادی داره که نمیدونم کجاس
ممنون میشم راهنمایی بفرمایید
public class ReadFile
{
String[] input=new String[20];
int i=0;
public void ReadIn()throws IOException
{
File f=new File("D:\\readme.txt");
FileReader fr=new FileReader(f);
BufferedReader br=new BufferedReader(fr);
String line="";
while ((line=br.readLine())!=null)
{
input[i]=line;
i++;
}
br.close();
fr.close();
}
public static void main(String[] args)throws IOException
{
// TODO code application logic here
ReadFile rf=new ReadFile();
rf.ReadIn();
String[] arr=new String[20];
arr=rf.input;
// for(int i=1;i<10;i++)
// {
// System.out.print(arr[i]);
// }
WriteFile wf=new WriteFile();
wf.WriteOut(arr);
}
public class WriteFile {
public void WriteOut(String[] arr) throws IOException
{
File f=new File("D:\\write.txt");
FileWriter fw=new FileWriter(f);
BufferedWriter bw=new BufferedWriter(fw);
try{
for(int i=0;i<20;i++)
{
bw.write(arr[i]);
}
}catch (NullPointerException ex)
{
System.out.print(ex.toString());
}
bw.close();
}
}
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
mehrdad85
سلام
دوست عزیز اگه از null pointer.. استفاده کنم باز هم این پیغام خطا را میده . یعنی اینکه واقعا وقتی رشته را پاس میدم به عنوان آرگومان باز هم رشته خالی هستش
دوست عزیز یعنی چی از null pointer استفاده کنم... شما اول روی نوشته های من اندکی تامل کن...
شما به متد writeOut چه پارامتری ارسال میکنی یه ارایه رشته ای درسته؟ حالا این ارایه رشته ای باید اندازش 20 باشه نه کمتر و نه نا معلوم ...
شما ارایه arr را مقدار دهی نکردید و مقدار اولیه ان null میباشد.
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
agusta.ada
دوست عزیز یعنی چی از null pointer استفاده کنم... شما اول روی نوشته های من اندکی تامل کن...
شما به متد writeOut چه پارامتری ارسال میکنی یه ارایه رشته ای درسته؟ حالا این ارایه رشته ای باید اندازش 20 باشه نه کمتر و نه نا معلوم ...
شما ارایه arr را مقدار دهی نکردید و مقدار اولیه ان null میباشد.
والا من 2 جور کد واسه این کار نوشتم که مثل بنز کار میکنن نمیدونم دیگه چی بگم چرا ازش استفاده نمیکنید ؟؟؟؟:گریه::گریه::گریه::گریه:: ریه::گریه:
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
agusta.ada
دوست عزیز یعنی چی از null pointer استفاده کنم... شما اول روی نوشته های من اندکی تامل کن...
شما به متد writeOut چه پارامتری ارسال میکنی یه ارایه رشته ای درسته؟ حالا این ارایه رشته ای باید اندازش 20 باشه نه کمتر و نه نا معلوم ...
شما ارایه arr را مقدار دهی نکردید و مقدار اولیه ان null میباشد.
سلام
دوست عزیز پس از تاملات طولانی به این نتیجه رسیدم که مقدار پارامتر null نیست و اون مقدار را از فایل میخونه و کیشه مقادیر داخل اونو چاپ هم کرد
نقل قول: مشکل با java.lang.NullPointerException
دوستان عزیز مشکلم حل شد . واقعا از همتون بابت وقت و انرژی ای که گذاشتید ممنونم لطف کردید .
نقل قول: مشکل با java.lang.NullPointerException
نقل قول:
نوشته شده توسط
mehrdad85
سلام
دوست عزیز پس از تاملات طولانی به این نتیجه رسیدم که مقدار پارامتر null نیست و اون مقدار را از فایل میخونه و کیشه مقادیر داخل اونو چاپ هم کرد
با سلام
دوست عزیز اگه اون فایلی که readLine کردی 20 نباشه یک خط کمتر و بیشتر باشه چه اتفاقی میافته...
اگه کمتر باشه arr درست مقدار دهی نمی شود و مابقی مقادیر همان مقدار پیش فرض باقی میماند یعنی null که exception شما میگه مقدار اشاره گر شما null است یعنی حتما JVM به یه مقدار null خورده که اینو میگه حالا نظرات من جای بحث داره ولی نظرات JVM نه.