שאלה ב-JAVA - קריאה מקובץ
אני רוצה לקרוא מקובץ בחלקים קבועים (נניח 1 מ"ב) ולבצע עיבוד מסוים על כל חלק. הלולאה שלי היא:
אני רוצה לקרוא מקובץ בחלקים קבועים (נניח 1 מ"ב) ולבצע עיבוד מסוים על כל חלק. הלולאה שלי היא:
while (offset < file.length() && (numRead = is.read(buf, offset, MAX_SIZE_IN_BYTES)) >= 0) { // do some process offset += numRead;
בפעם הראשונה זה קורא יפה, אבל בפעם השניה (אם הקובץ מעל 2 מ"ב למשל)הוא עף על יציאה מגבולות מערך כי הקציתי את "באפ" לגודל 1 מ"ב ואני חושב שהוא מנסה להעתיק בפעם השניה (והבאות) ממיקום 1 מ"ב בקובץ למיקום 1 מ"ב פלוס בחוצץ (באפ). כלומר אין לי אפשרות לשלוט על האינדקס של מערך היעד (במקרה זה הבאפר) כמו למשל בSystem.arraycopy)( מה עושים?