ObjectInputStream java.io.StreamCorruptedException : 잘못된 형식 : 0 롤리팝 및 마쉬 말로

야코프 밀 슈타인

메신저 자바 및 안드로이드 초보자, 다음을 얻습니다.

"java.io.StreamCorruptedException : 잘못된 형식 : 0"

객체를 다시 읽으려고 할 때. 하지만 나는 롤리팝과 마시멜로 장치에서만 그것을 얻습니다. Nougat (7.1)에서 이것을 실행할 때 전혀 문제가 없습니다. 어떤 제안?

public class MainActivity extends AppCompatActivity {

public final String FILE_NAME = "FILE_NAME";
private List<Item>;
private ReadWriteFunctions readWriteFunctions = new ReadWriteFunctions();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Bitmap defaultBitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.no_pic);

    //Read from internal storage
    items =readWriteFunctions.readObj(this,FILE_NAME);
    if (items == null){//if the file don't exist it returns null
        items = new ArrayList<>();
        items.add(new Item(false,"",defaultBitmap));
        Log.d("readObj", "Created new list");
    }

수업 코드 :

public class ReadWriteFunctions {


public ArrayList<Item> readObj(Context context, String fileName) { 
    ArrayList<Item> arrayList;
    try {
        FileInputStream fis = context.openFileInput(fileName);
        ObjectInputStream ois = new ObjectInputStream(fis);
        arrayList = (ArrayList<Item>) ois.readObject();
        ois.close();
        return arrayList;
    }catch (IOException | ClassNotFoundException e){
        e.printStackTrace();
        return null;
    }
}

public void writObj(Context context,String fileName,Object obj) {
    try {
        FileOutputStream fos = context.openFileOutput(fileName,Context.MODE_PRIVATE);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(obj);
        oos.close();
        Log.d("writObj", "Saved");
    }catch (IOException e){
        e.printStackTrace();
        Log.d("writObj", "Save Fault");
    }

}

}

Public 클래스 Item은 Serializable {을 구현합니다.

private boolean itemChecked;
private String itemText;
private transient Bitmap itemPicture;


public Item(Item item) {//Constructor that receive item
    this.setItemChecked(item.isItemChecked());
    this.setItemText(item.getItemText());
    this.setItemPicture(item.getItemPicture());

}

public Item(boolean itemChecked, String itemText, Bitmap itemPicture) {
    this.itemChecked = itemChecked;
    this.itemText = itemText;
    this.itemPicture = itemPicture;
}


public boolean isItemChecked() {
    return itemChecked;
}

public void setItemChecked(boolean itemChecked) {
    this.itemChecked = itemChecked;
}

public String getItemText() {
    return itemText;
}

public void setItemText(String itemText) {
    this.itemText = itemText;
}

public Bitmap getItemPicture() {
    return itemPicture;
}

public void setItemPicture(Bitmap itemPicture) {
    this.itemPicture = itemPicture;
}



private void writeObject(java.io.ObjectOutputStream out) throws IOException {

    itemPicture.compress(Bitmap.CompressFormat.PNG, 100, out);
    out.defaultWriteObject();

}

private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException {

    itemPicture = BitmapFactory.decodeStream(in);
    in.defaultReadObject();

}

}

오류:

09-08 12:38:53.607 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err: java.io.StreamCorruptedException: Wrong format: 0
09-08 12:38:53.607 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.corruptStream(ObjectInputStream.java:675)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:788)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1983)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1940)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1113)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:454)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at milshtein.yaacov.advancedshoppinglist.Item.readObject(Item.java:70)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1330)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1242)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1835)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:761)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1983)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1940)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.util.ArrayList.readObject(ArrayList.java:661)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1330)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1242)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1835)
09-08 12:38:53.608 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:761)
09-08 12:38:53.609 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1983)
09-08 12:38:53.609 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1940)
09-08 12:38:53.614 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at milshtein.yaacov.advancedshoppinglist.WriteReadInternalStorage.ReadWriteFunctions.readObj(ReadWriteFunctions.java:29)
09-08 12:38:53.617 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at milshtein.yaacov.advancedshoppinglist.MainActivity.onCreate(MainActivity.java:56)
09-08 12:38:53.617 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.app.Activity.performCreate(Activity.java:5990)
09-08 12:38:53.618 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
09-08 12:38:53.618 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
09-08 12:38:53.618 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
09-08 12:38:53.618 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-08 12:38:53.618 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-08 12:38:53.618 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
09-08 12:38:53.621 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.os.Looper.loop(Looper.java:135)
09-08 12:38:53.622 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5254)
09-08 12:38:53.622 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
09-08 12:38:53.622 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
09-08 12:38:53.622 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-08 12:38:53.622 15576-15576/milshtein.yaacov.advancedshoppinglist W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
야코프 밀 슈타인

미래에 같은 문제를 겪는 사람을 위해 내가 문제를 해결하는 방식을 게시하는 것뿐입니다.

에서:

public class Item implements Serializable

나는 변경했다 :

private boolean itemChecked;

이 줄에 :

private Boolean itemChecked;

부울이 직렬화 가능하다는 것을 알기 때문에 왜 차이를 만들 었는지 모르겠습니다. 누가에서 작동하고 롤리팝 및 마시멜로에서 작동하지 않은 이유도 이해하지 못합니다. 하지만 지금은 잘 작동합니다. 누군가가 이유를 안다면 기뻐요.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Java의 CipherInputStream에 래핑하는 동안 ObjectInputStream의 java.io.StreamCorruptedException

SCS 앱에서 수신된 개체 페이로드를 테스트하는 방법(java.io.StreamCorruptedException: 잘못된 스트림 헤더: 역직렬화 중 7B0D0A20)

SSL Java java.io.IOException : 잘못된 키 저장소 형식

java.io.StreamCorruptedException : invalid type code : AC를받지 않고 ObjectInputStream에 추가하는 방법

java xmlencoder 잘못된 형식

java.io.StreamCorruptedException : 유효하지 않은 유형 코드 : 04

EFCore 롤백 마이그레이션 오류 : 키 열로 사용할 잘못된 형식의 열

Serialization : java.io.StreamCorruptedException : 유효하지 않은 스트림 헤더 : 0AACED00

DateTime 월 0 잘못된 형식

URIError 처리 : vue-router로 잘못된 URI 형식

잘못된 형식으로 미리 채워진 JQuery datepicker

잘못된 JSON 형식, 트리로 볼 수 없음

접미사 표기법에 대한 스택 및 팝 도움말. 잘못된 값 인쇄, C 프로그램

java.io.StreamCorruptedException: invalid internal transport message format

pdf로 렌더링 및 생성할 때 잘못된 일본어 형식

RASA 오류: 잘못된 스토리 파일 형식 및 매개변수를 json 개체로 디코딩하지 못했습니다.

Java SocketServer ObjectInputStream 문제 (잘못된 값 수신)

java.io.FileNotFoundException 잘못된 자원 경로

ObjectInputStream으로 인한 java.io.EOFException 해결 방법

Java Decimal 형식이 잘못된 출력

InvalidKeyException : 잘못된 키 형식 java

RAID1 md0을 마운트 할 수 없음-잘못된 fs 유형, 잘못된 옵션, / dev / md0의 잘못된 수퍼 블록, 코드 페이지 또는 도우미 프로그램 누락 또는 기타 오류

jar 매니페스트 파일 업데이트-java.io.IOException : 잘못된 매니페스트 형식

Java.Lang.IllegalArgumentException : 잘못된 비트 맵 형식 시작시 간헐적으로

javascript Date(2022,0,13) 형식의 잘못된 날짜 형식

날짜로 변환 잘못된 형식

잘못된 ID 형식! Google Analytics 리더

mongo db 동적 쿼리가 PHP에서 잘못된 방식으로 형성됨

개체 및 잘못된 경계 사각형의 경로 변경

TOP 리스트

뜨겁다태그

보관