《零基礎學Java》 繪製幾何圖形 Java可以分別使用 Graphics 和 Graphics2D 繪製圖形,Graphics類 使用不同的方法繪製不同的圖形(drawLine()方法可f以繪製線、drawRect()方法用於繪製矩形、drawOval()方法用於繪製橢圓形)。 Graphics類 ...
我們都知道流分為 位元組流和字元流
輸出流又分:位元組輸出流,字元輸出流
輸入流又分:位元組輸入流,字元輸入流
/*在java中OutputStream表示位元組輸出流,可以將java程式中的數據寫到文件中。 OutputStream是所有位元組輸出流的頂層父類,是一個抽象類,如果要用,需要使用子類。 常用的子類FileOutputStream 構造方法: FileOutputStream(File file): 傳遞File類型的文件。 FileOutputStream(String name): 傳遞一個字元串類型的文件路徑。 常用方法: void write(int b): 向文件中寫入一個位元組。 void write(byte[] b): 向文件中寫入一個位元組數組。 void write(byte[] b, int off, int len): 向文件中寫入位元組輸入的一部分。 void close(): 釋放資源. FileOutputStream的使用步驟 1. 創建一個FileOutputStream對象,並且指定一個目的地文件 2. 調用write方法,向文件中寫入數據。 3. 釋放資源(關閉流) 註意: 在java中,一個字元占兩個位元組,但是如果這個字元在ASCII碼範圍內 ,那麼這個字元在電腦 中是占一個位元組的,可以以一次寫一個位元組的方式寫入到文件中. 中文在操作系統中占多個位元組的。 如果文件採用的是GBK編碼,那麼這個中文就占2個位元組。 如果文件採用的是UTF-8編碼,那麼這個中文占3個位元組。 */ public class Demo02OutputStream { public static void main(String[] args) throws IOException { byte arr[] = new byte[]{12, 13, 13, 45}; //創建一個FileOutputStream對象,並且指定一個目的文件 FileOutputStream fs = new FileOutputStream("file01.text"); //調用write方法,向文件中寫入數據 //寫入byte【】類型 fs.write(arr); //寫入BYTE【】類型,從幾號開始到幾號索引結束 fs.write(arr, 1, arr.length - 1); // System.out.println(fs); //如果不釋放資源,那麼如果這個程式不結束的話,這個資源會一直處於被占用的狀態. //3. 釋放資源(關閉流) fs.close(); } }
/* 字元串和位元組輸出的相互轉換。 字元串->位元組數組 byte[] getBytes(): 使用平臺預設的編碼方式將字元串轉成位元組數組。 位元組數組 -> 字元串 String(byte[] bytes): 將位元組數組轉成一個字元串 String(byte[] bytes, int offset, int length): 將位元組數組的一部分轉成String。 參數bytes: 表示要轉換的位元組數組 參數offset: 表示從哪個位置開始轉 參數length: 表示轉幾個. */ public class Demo03Parse { public static void main(String[] args) { //定義一個字元串 String s="abcde"; //調用方法把這個字元串轉換為位元組數組 byte[] arr=s.getBytes(); System.out.println(Arrays.toString(arr)); String s1="java愛好者"; byte[]arr1=s1.getBytes(); System.out.println(Arrays.toString(arr1));//從列印結果可以看到文字占了三個位元組 System.out.println("---------------------"); //位元組數組轉換為字元串 String str1=new String(arr); System.out.println("str1:"+str1); String str2=new String(arr,1,arr.length-2); System.out.println(str2); } }
/* 使用位元組輸出流向文件中一次寫一個位元組數組 方法: void write(byte[] b): 向文件中寫入一個位元組數組。 void write(byte[] b, int off, int len): 向文件中寫入位元組輸入的一部分。 */ public class Demo04OutputStream { public static void main(String[] args) throws IOException { //創建FileOutputStream對象,並指定目標文件 FileOutputStream fs=new FileOutputStream("java265.txt"); //使用位元組輸出流向文件寫一個位元組數組 //創建一個字元串,轉位元組數組 String s="abcde"; byte[] b = s.getBytes(); //把位元組數組輸出到指定文件 // fs.write(b); //向文件中寫入位元組輸出的一部分 fs.write(b,0,b.length-1); //關閉流 fs.close(); }
/* 如果想要在原來文件的後面進行續寫,可以使用另外的構造方法創建對象。 FileOutputStream(File file, boolean append): 第二個參數append表示是否要續寫。 true表示續寫。 FileOutputStream(String name, boolean append): 第二個參數append表示是否要續寫。 true表示續寫。 */ public class Demo05OutputStream { public static void main(String[] args) throws IOException { FileOutputStream fs = new FileOutputStream("fiel02.text", true); //字元串轉位元組數組 fs.write("我是java265".getBytes()); //釋放資源 fs.close(); } }
/* 換行寫 如果要實現換行,可以使用換行符。 每個操作系統的換行符都不一樣。 windows: \r\n linux: \n mac: \r */ public class Demo06WriteLine { public static void main(String[] args) throws IOException { FileOutputStream fs = new FileOutputStream("fiel03", true); fs.write("我是一個java愛好者\r\n".getBytes()); fs.write("我來自java265\r\n".getBytes()); fs.write("\r\n\r\njava265.com".getBytes()); fs.close(); } }