עבור לתוכן

רוצה להתקדם בג'אוה

Featured Replies

פורסם

היי.

אני לומד ג'אווה שנה שנייה בתיכון ואנחנו עוד כמה ימים מגיעים לאובייקטים.

בינתיים החומר קל, ורציתי להתקדם.

אני רוצה באיזשהו שלב לבנות משחק דפדפן מבוסס טקסט, אולי עם כמה תמונות בסיסיות אבל כמו שאתם רואים - השאיפות ממש לא בשמיים.

בשביל לעשות דבר כזה, אני אצטרך ללמוד הרבה דברים חדשים (אני עוד מחפש מישהו שיעבוד לצידי ויתמקד במה שלא ג'אווה).

אחד מהדברים הוא כתיבה וקריאה של קובצי טקסט. אין לי שמץ איך עושים את זה. מצאתי פעם באיזה מדריך את הקוד לבאפר אבל זה לא עבד.

אז כמה שאלות:

איך אני כותב וקורא קבצי טקסט?

מה עוד אני צריך לדעת, ת'כלס, לפני שאני מתחיל לעבוד על הפרוייקט?

איזה שפות נוספות וכלים צריכים כדי להוציא את הפרוייקט לאור, ואיפה אני יכול למצוא אנשים שאולי ירצו לעזור לי עם המשחק?

תודה,

יואב.

פורסם

קודם כל אני לא יודע באיזה IDE אתה עובד אבל אני ממליץ לך על ECLIPSE... גמישה מאוד ונוחה.

בכל אופן, כדי לקרוא מקובץ אני משתמש ב FileInputStream.

public static void main(String[] args) {
// TODO Auto-generated method stub
String thisline;
for(int i=0; i<args.length; i++){
try{
FileInputStream fin = new FileInputStream(args[i]);
try{
DataInputStream myInput=new DataInputStream(fin);
try{
while((thisline=myInput.readLine())!=null)
{
System.out.println(thisline);
}
} catch(Exception e) {System.out.println("Exception : "+e);}
} catch (Exception e) {System.out.println("Exception : "+e);}
} catch (Exception e) {System.out.println("Failed to open "+args[i]);}
}
}

אני חושב שהקוד הזה יעזור לך..

עכשיו אם תשים לב, אתה צריך להכניס את הקובץ טקסט כארגומנט. ב ECLIPSE מכניסים את הארגומנט באמצעות לחיצה מקש ימני על התכנית, RUN AS , שם ללחוץ על RUN CONFIGURATIONS , שם כרטיסייה בשם ARGUMENTS ובשדה הראשון צריך לרשום את שם הקובץ לדוגמא test.txt

בגדול, הקוד מאוד מובן...

בהצלחה

פורסם

הכי חשוב: תלמד לחפש בגוגל. לדוגמה, אם אתה רוצה לדעת איך פותחים קבצי טקסט, כל מה שצריך לחפש בגוגל זה "java read file" (או java open file או java text file) ותמצא עשרות דוגמאות, וככה לא תצטרך לחכות לתשובה מהפורום.

פורסם
  • מחבר

הכי חשוב: תלמד לחפש בגוגל. לדוגמה, אם אתה רוצה לדעת איך פותחים קבצי טקסט, כל מה שצריך לחפש בגוגל זה "java read file" (או java open file או java text file) ותמצא עשרות דוגמאות, וככה לא תצטרך לחכות לתשובה מהפורום.

תודה על התשובה (אני מרגיש נימה של ציניות/עוקצנות?), אבל כמו שכתבתי גוגל לא סיפק עזרה, הקוד פשוט לא עבד. הקודים שמצאתי התעסקו עם BUFFER וגם כשהכנסתי את ה-PATH של הקובץ כמו שהיה כתוב, זה לא מצא אותו.

טל:

תודה רבה. אכן ה-IDE שלי הוא אקליפס, תוכנה מצויינת ונוחה מאוד (במיוחד בהשוואה לפסקל המושתן שהיינו צריכים לעבור איתו את הבגרות, פשוט טעות להתחיל עם ג'אווה ולעבור לפסקל רק כדי לחזור לג'אווה אחרי הבגרות).

את הקוד הבנתי, בגדול. רק מה היא הפעולה try? יש לי הרגשה שהיא מנסה את הפעולה ואם יש אקספשן התוכנית לא נעצרת אלא מדלגת, אבל אשמח להסבר קצר בעברית (לא שאני לא מסתדר עם אנגלית, פשוט המושגים שהם משתמשים בהם גורמים לי לבלבול, יותר קל לי בעברית, אני מקווה שתבין את הצורך).

הערך args.length הוא בעצם מספר השורות בקובץ, נכון?

ובשביל מה נועדו ה-catch-ים? מה הפעולה עושה בעצם?

תודה רבה על העזרה.

פורסם

try ו catch הם טיפול בחריגות.

try בעצם בודק את הזריקה לחריגה ובמידה ונתפסת חריגה ה catch מטפל בחריגה.

args.length זה האורך של הארגומנט. length זה דבר מאוד בסיסי... אתה יכול לגשת לאורך של ארגומנט (args), אתה יכול לגשת לאורך של מערך (arr.length שם המערך arr).

מקווה שזה היה ברור...

פורסם

תודה על התשובה (אני מרגיש נימה של ציניות/עוקצנות?), אבל כמו שכתבתי גוגל לא סיפק עזרה, הקוד פשוט לא עבד. הקודים שמצאתי התעסקו עם BUFFER וגם כשהכנסתי את ה-PATH של הקובץ כמו שהיה כתוב, זה לא מצא אותו.

זו לא הייתה עוקצנות, אלא יותר עצה כללית לאנשים שבאים לחפש תשובות בפורום.

לגבי שאלותיך - אם אתה עדיין לא יודע על אובייקטים, לא יודע מה אומר args.length ולא יודע מה זה try/catch - קודם כל תלמד אותם (באמצעות מדריכים באינטרנט, יש המון) ותתקדם משם. אין טעם לקפוץ מעל הפופיק.

פורסם
  • מחבר

במושגים TRY ו-CATCH לא נתקלתי מעולם, אז שאלתי, לא נגרם נזק. ציינתי שאני תלמיד שנה שנייה בתיכון, אז כמובן שהידע שלי יהיה מצומצם, ובגלל שמעולם לא נתקלתי בשני המושגים הללו לא ידעתי לחפש אותם. תודה על התשובה, טל.

את length אני מכיר, כנראה לא הבנתם את השאלה. שאלתי האם length של הארגומנט, מחזיר את מספר השורות נטו. במילים אחרות, כל שורה נקלטת בנפרד או שהערך עולה אחרי כל סמי-קולון? לדוגמא:

Honda Civic, 32, 45; Chevrolet, 12, 40;

שווה ערך ל:

Honda Civic, 32, 45;

Chevrolet, 12, 40;

?

לכן שאלתי - האם אורך הוא מספר השורות, או מספר ה-statements?

אני יודע איך length מתפקד במערכים ומטריצות ומחרוזות.

פורסם
  • מחבר

מעבירים אותי לכל מקום....

פורסם

זה בדיוק מה שאני אומר - אם מעולם לא נתקלת ב-try/catch, ומעולם לא למדת על אובייקטים, ואתה לא ממש יודע מה אומר הפרמטר args שמועבר ל-main, אין טעם שמיד תנסה לקפוץ לנושאים מתקדמים. קח לך איזשהו מדריך טוב באינטרנט, ותלמד ממנו.

אני תוהה, אגב, מה לעזאזל לימדו אתכם במשך שנה.

נ.ב. למקרה שתהית, הפרמטר args הוא מערך שמחזיק את הפרמטרים שהועברו לתכנית שלך בשורת הפקודה. לדוגמה, אם תריץ את התכנית שלך ככה:

java myClass a1 b2 c3

אז args יחזיק את שלוש המחרוזות "a1", "b2", "c3".

פורסם

אני חייב לציין שאני מסכים עם שניצל.

מושגים כמו ארגומנטים של main אובייקטים ו try/catch הם בפירוש מושגים בסיסיים ואמורים להיות מכוסים בשנת הלימודים הראשונה

אני מנחש שהשנה הראשונה כוללת מושגי יסוד בתוכנה שאינם קשורים באופן ישיר עם ג'אווה (כמו למשל מתמטיקה בבסיס 2 ו16)

בכל אופן מה שרציתי לצין לטל זה שאפשר לפשט את הקוד ע"י שירשור של streams

כך

DataInputStream myInput=new DataInputStream(new FileInputStream(args[i]));

חוסך לפחות רמת קינון אחת של try/catch

כמו כן רציתי לציין שלקריאת קבצי טקסט מומלץ להשתמש ב BufferedReader מעל FileReader

BufferedReader myReader=new BufferedReader(new FileReader(args[i]));

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים