FileOutputStream.write(byte[] bytes)寫入文件的是二進制碼,你寫入二進制1和0是不可見字元,必須用二進制/16進制文件格式打開才可以看到,
B. java的byte數組最多存儲多少位元組只用FileInputStream讀取文件和只用FileOutputStream寫入文件會出問題嗎
不會,你可以設定一個指定大小的數組,然後重復讀寫。
import java.io.*;
public class FileStreamDemo2 {
public static void main(String[] args) throws IOException {
//創建兩個文件
File inFile = new File("tcty36.rm");
File outFile = new File("newtcty36.rm");
//最大的流為60Mb,當文件的容量大於60Mb的時候便分開流
final int MAX_BYTE = 60000000;
long streamTotal = 0; //接受流的容量
int streamNum = 0; //流需要分開的數量
int leave = 0; //文件剩下的字元數
byte[] inOutb; //byte數組接受文件的數據
//創建流文件讀入與寫出類
FileInputStream inStream = new FileInputStream(inFile);
FileOutputStream outStream = new FileOutputStream(outFile);
//通過available方法取得流的最大字元數
streamTotal = inStream.available();
//取得流文件需要分開的數量
streamNum = (int)Math.floor(streamTotal/MAX_BYTE);
//分開文件之後,剩餘的數量
leave = (int)streamTotal % MAX_BYTE;
//文件的容量大於60Mb時進入循環
if (streamNum > 0) {
for(int i = 0; i < streamNum; ++i){
inOutb = new byte[MAX_BYTE];
//讀入流,保存在byte數組
inStream.read(inOutb, 0, MAX_BYTE);
outStream.write(inOutb); //寫出流
outStream.flush(); //更新寫出的結果
}
}
//寫出剩下的流數據
inOutb = new byte[leave];
inStream.read(inOutb, 0, leave);
outStream.write(inOutb);
outStream.flush();
inStream.close();
outStream.close();
}
}
C. 在java中怎樣將整型數組輸出到文件中
import java.io.*;
你可以這樣:
//serializable class. 這個是java的對象序列化
import java.io.*;
class tuz implements Serializable {
private int[] tuzArray={};
}
public class Freezetuz {
public static void main(String[] args)
throws IOException {
ObjectOutput out=
new ObjectOutputStream(
new FileOutputStream("X.file"));
tuz t=new tuz();
out.writeObject(t);
}
}
我的意思是把你的那個數組包含到一個class中去,但這個class必須
實現Serializable這個介面,等你想把這個class取出來的時候
就直接readObject()就行了,記住寫的順序要和讀的一樣:
比如你先
out.writeObject(t1);
out.writeObject(t2);
等你讀它的時候就要跟上邊寫入的順序一樣
tuz z1=(tuz)in.readObject(t1);
tuz z2=(tuz)in.readObject(t2);
D. java byte數組寫入本地文件,那這個文件是二進制文件嗎不是的話,是什麼文件跪求解答啊
所有的文件都可以看成二進制文件,因為硬碟里只能保存0和1 。至於是否文本文件,需要確認裡面的內容才行。
E. java:通過設置byte數組的大小來進行數據的讀寫的時候出現寫入的文件內容和讀取的文件內容不符怎麼辦
int len = 0;
while (-1 != (len = fis.read(b)) ) {
fos.write(b,0,len);//b是一個byte數組,大小1024
}