Dalam pakej io, dua aliran operasi data bebas platform disediakan: aliran output data (DataOutputStream) dan aliran input data (DataInputStream).
Biasanya aliran output data akan mengeluarkan data dalam format tertentu, dan kemudian data akan dibaca dalam format tertentu melalui aliran input data. DataOutputStream dan DataOutputStream digunakan untuk membaca dan menulis data format bait tetap.
Buat objek
DataOutputStream out = new DataOutputStream(相接的流)
KaedahTulis data jenis int ke aliran output data, lapisan bawah akan Tulis 4 bait kepada aliran keluaran asas
writeInt(int i)
Tulis data jenis berganda kepada aliran keluaran data Lapisan bawah akan menukarkan berganda kepada jenis panjang dan menulisnya kepada aliran keluaran asas, menghasilkan 8 perkataan
writeDouble(double d)
menulis rentetan ke aliran keluaran asas menggunakan pengekodan UTF-8 dalam cara yang tidak bergantung pada mesin. Keluaran pertama 2 bait yang mewakili panjang bait rentetan, dan kemudian keluarkan nilai bait ini
writeUTF()
Buat objek
DataInputStream dis = new DataInputStream(InputStream in);
KaedahBaca data jenis int daripada aliran input data, baca 4 bait
readInt()
Baca 8 bait
readDouble()
Baca 2 perkataan bahagian pertama untuk menentukan panjang bait rentetan dan kemudian baca nilai bait ini
readUTF()
Petua: Bacaan selesai, dan EOFException akan berlaku apabila membaca semula
public class Main { public static void main(String[] args) throws Exception { DataOutputStream out = new DataOutputStream(new FileOutputStream("d:/abc/f5")); out.writeInt(20211011); out.writeUTF("晴,18度"); out.writeInt(20211012); out.writeUTF("晴,19度"); out.writeInt(20211013); out.writeUTF("多云,17度"); out.close(); } }
Keputusan larian:
public class Main { public static void main(String[] args) throws Exception { DataInputStream in = new DataInputStream(new FileInputStream("d:/abc/f5")); try { while (true) { int date = in.readInt(); String s = in.readUTF(); System.out.println(date); System.out.println(s); } } catch (EOFException e) { //正确读取结束,不需要处理 } in.close(); } }
Keputusan larian:
Ia dikehendaki menyimpan maklumat pelajar dalam format berikut
Nombor pelajar 00 00 00 01
Nama00 03 61 62 63
Jantina00 61
Umur00 00 00 16
xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="20dp"> <EditText android:id="@+id/et1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="学号" /> <EditText android:id="@+id/et2" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="姓名" /> <EditText android:id="@+id/et3" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="性别" /> <EditText android:id="@+id/et4" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="年龄" /> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保存" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读取" /> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" /> </LinearLayout>
java
java🎜>Jalankan program:
Klik butang baca:
di mana getExternalFilesDir(null)
mendapat laluan berikut
/storage/emulated/0/Android/data/yourPackageName/files
direktori ini Ia akan dipadamkan apabila aplikasi itu dinyahpasang dan mengakses direktori ini tidak memerlukan aplikasi dinamik untuk kebenaran STORAGE.
Jadi menjalankan program akan menghasilkan fail stu.txt dalam laluan ini
Atas ialah kandungan terperinci Cara menggunakan DataInputStream dan DataOutputStream Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!