流的總結
字節流:
InputStream 是字節輸入流的超類,其中定義了字節輸入流的基本操作方法
read();一次讀取一個字節數據
read(byte[] buf);一次讀取多個字節數據,存儲在buf中,然后給buf中讀取的字節個數
FileInputStream:專門用來讀取文件中的字節數據的文件字節輸入流對象
創建這個類的對象,讀取文件中的數據
一次讀取一個字節的寫法
FileInputStream fis = new FileInputStream("文件");
int ch = 0;
while((ch = fis.read()) != -1){
?? ?//處理讀取到的數據,數據在ch中,讀取到的是ASCII碼,如果沒有讀到就是-1
}
fis.close();
一次讀取多個字節的寫法
FileInputStream fis = new FileInputStream("文件");
byte[] buf = new byte[1024];
int len = 0;
while((len = fis.read(buf)) != -1){
?? ?//處理數據,數據在buf中,共計有len個,假如沒讀到就為-1
}
fis.close();
字節輸出流
OutputStream 字節輸出流的超類,定義了基本的輸出字節數據的操作
write(int b);寫出一個字節數據,注意只能把這個int數據中的最低1個字節數據寫出去
write(byte[] buf)把字節數組中的所有數據寫到文件中
write(byte[] buf,int off,int len);把字節數組中的數據從off開始,共計寫len個
FileOutputStream 專門用來給文件中寫字節流數據的流對象
使用輸出流寫數據時,如果對應的文件不存在會創建一個文件,如果文件存在,在創建對象時,沒有指定true值,就會繼續創建新的文件,覆蓋原來的文件
一般會在讀的while循環中使用寫的功能,往出把讀取到的數據寫出去
字符輸入流:
Reader:是所有字符輸入流的超類
close();
read();一次讀取一個字符數據,但返回的字符數據的編碼值
FileReader專門用于讀取字符文件字符輸入流對象,內部使用本地默認的編碼表(GBK)
字符輸出流
Writer 所有字符輸出流的超類
write(String s)把一個字符串寫出去
注意,字符輸出流在write()使用后,一定要使用flush()將緩存中的內容刷入硬盤,或者在輸出結束時調用close()會自動在流關閉前調用flush();
序列化是將對象狀態轉換為字節流的過程,需要對象輸出流
ObjectOutputStream.對象->文件 是寫的過程
反序列化是從特定的流中獲取數據重新構建對象的過程,需要使用對象輸入流ObjectInputStream. 文件->內存,讀的過程
注意:如果一個對象要實現序列化的話,這個類必須要實現序列化接口
序列化步驟:
實現Serializable接口
創建對象輸出流
調用writeObject()將對象寫入文件
關閉對象輸出流
反序列化步驟:
實現Serializable接口
創建對象輸入流
調用readObject()讀取對象
關閉對象輸入流
XML
xml文檔內容是由一些列標簽元素,標簽組成
單標簽和雙標簽
雙標簽不能相互嵌套
<a><b></a></b>不可以
<a><b></b></a>可以
屬性:
格式 <標簽名 屬性 1="屬性值1" 屬性2="屬性值2" .../>
在屬性中,屬性的名字命名和標簽命名規則一致,一般屬性值沒有嚴格要求時,不要以數字開始.
注意:屬性值需要使用""包裹
一個標簽可以有多個屬性,屬性值中最好不要包含特殊字符
<!--注釋 ?-->
特殊字符:
& ? &
<?? ?<
>?? ?>
"?? ?"
'?? ?'
dom4j解析xml
通過代碼將文件讀取到程序中,會生成一個document對象 -文件
通過這對象獲取文件中的所有內容
1.導包
2.創建流對象
3.通過read方法讀取文件
4.通過document對象獲取內容 -文件本身
html
<font></font>標簽表示html中的字體
屬性:
color表示封裝的數據的顏色
size:封裝的數據大小,7最大,1最小
Strong標簽可以使字體加粗
<h1></h1>標簽定義標題
<p></p>標簽表示段落標簽的意思,使用在段與段之間會有點間隔
換行與水平線
<br/>換行 ?<hr/>水平線?? ?單標簽,哪里需要就在哪用
<em>斜體</em>
<img src="圖片位置" alt="沒加載出來圖片會顯示" title="鼠標放上會顯示"
width="寬度" height="高度">
超鏈接
<a href="鏈接地址" target="_blank新開窗口 _self原窗口打開">文本或圖像</a>
頁面定位方法:
<a id="top"></a> 設置頁面上跳轉的具體位置也稱為標記,a標簽可以使用name屬性,也可以使用id屬性
<a href="#top">返回頂部</a> href中的value就是書寫要跳轉到的具體位置,必須#開始,跳轉到錨點位置的id或name名稱
表格標簽
<th>表頭默認居中加粗
<table border="1px" align="center" width="" height="" cellpadding="0" cellspacing="0" >
?? ?<tr>行
?? ??? ?<td colspan="2 合并2列">單元格1</td>
?? ??? ?<td rowspan="2 合并2行">單元格2</td>
?? ?</tr>
</table>
表單標簽
form標簽中經常使用其他標簽
input主要用來讓用戶輸入數據,type屬性可以設置讓用戶輸入的數據類型
屬性:
text 文本框,主要用于讓用戶輸入課件數據,input的默認屬性
password:密碼框,輸入不可見數據
radio:單選按鈕,注意,多個radio的name必須一致
CheckBox:復選框,用戶可以選擇多個條件,注意name屬性必須一致
file:選擇文件,可以把本地文件上傳到服務端
submit:提交,提交整個form表單中的數據到服務端
reset:重置,把form表單中的數據重置到初識狀態.
button:簡單按鈕,沒有任何點擊效果
hidden:因殘數據,頁面上不會顯示,但是這個數據依然會在選擇提交時提交個服務端
<select>下拉框,需要和<option>一起使用
<textarea rows="5" cols="40">
h5新添加的特性
支持video和audio元素
canvas,svg元素
離線存儲,對本地離線存儲更好的支持
設備兼容特性,HTML5提供了前所未有的數據與應用接入開放接口,使外部應用可以直接與瀏覽器內部的數據直接相連
連接特性,更有效的連接工作效率,使得基于頁面的實時聊天,更快速的網頁游戲體驗,更優化的在線交流得到了實現,更有效的服務器推送技術
<video src="" controls=""></video>還可以設置窗口寬度和高度
controls 顯示控件
autoplay 該屬性存在則媒體就緒后就會自動播放
loop循環播放
?
//序列化與反序列化package com.sky.ly.io;import java.io.*;public class Demo {public static void main(String[] args) throws IOException, ClassNotFoundException {//pictureCopy();//textCopy();//objectCopy();objectRead();}public static void pictureCopy() throws IOException {File file1 = new File("D:\\javaJob\\yuan.jpg");File file2 = new File("D:\\test\\yuantest.jpg");//準備輸入流對象InputStream in = new FileInputStream(file1);//作為參數給下面的方法DataInputStream dis = new DataInputStream(in);OutputStream out = new FileOutputStream(file2);DataOutputStream dos = new DataOutputStream(out);int ch = 0;while ((ch = dis.read()) != -1) {dos.write(ch);dos.flush();//寫一點刷一點}dos.close();//釋放資源遵循先開后關原則out.close();dis.close();in.close();}public static void textCopy() throws IOException {//使用字符輸出流向文件對象輸出內容String s = "sorry";File file = new File("D:\\javaJob\\file.txt");//創建字符流FileWriter writer = new FileWriter(file, true);//表示追加writer.write(s);writer.flush();//刷出,輸出流還在,還可以繼續寫,并且可以重復使用writer.close();//關閉了流對象,不能繼續寫入}//序列化對象:將內存中的對象轉換成二進制形式寫入持久化設備public static void objectCopy() throws IOException {User u = new User("xiaomei", 12, "1221211");File file = new File("D:\\javaJob\\fileobj.txt");OutputStream os = new FileOutputStream(file);ObjectOutputStream oos = new ObjectOutputStream(os);oos.writeObject(u);//把對象寫出去oos.flush();oos.close();os.close();}//反序列化對象:將二進制對象文件讀進內存public static void objectRead() throws IOException, ClassNotFoundException {File file = new File("D:\\javaJob\\fileobj.txt");InputStream in = new FileInputStream(file);ObjectInputStream ois = new ObjectInputStream(in);User u = (User) ois.readObject();System.out.println(u);ois.close();in.close();}}
//dom4j解析xmlpackage com.sky.xml;import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;import java.io.File;
import java.util.List;public class Demo {public static void main(String[] args) throws DocumentException {/*解析 - 將XML文件中的內容獲取到java程序中通過代碼將文件讀取到程序中,會生成一個document對象 -文件通過這對象獲取文件中的所有的內容1.導包2.創建流對象3.通過read方法讀取文件4.通過document對象獲取內容 -文件本身*/SAXReader reader = new SAXReader();Document document = reader.read(new File("D:\\java\\soft\\IntelliJ IDEA 2021.2.1\\workspace\\src\\com\\sky\\xml\\PhoneInfo.xml"));//獲取根標簽Element rootElement = document.getRootElement();String name = rootElement.getName();System.out.println("根元素是:"+name);//獲取該元素的所有的子元素List<Element> eles = rootElement.elements();for (int i = 0; i < eles.size(); i++) {Element ele = eles.get(i);//獲取到的是每一個子元素,其實他是brandString eleName = ele.getName();//獲取標簽的名字//根據指定屬性名獲取屬性對象Attribute attr = ele.attribute("name");String value = attr.getValue();//獲取指定屬性的值System.out.println("\t第"+(i+1)+"個子元素的名字是:"+eleName);System.out.println("\t\t該標簽的name的屬性值是: "+value);List<Element> types = ele.elements();for (int j = 0; j < types.size(); j++) {//types其實就是每一個brand標簽的子標簽,就是type組成的集合Element type = types.get(j);String typeName = type.getName();//獲取指定標簽指定屬性的值Attribute typeAttr = type.attribute("name");String typeAttrValue = typeAttr.getValue();System.out.println("\t\t\t"+eleName+"對應的第"+(j+1)+"個子元素是: "+typeName+",對應的name屬性的值"+typeAttr);}}}
}
<?xml version="1.0" encoding="UTF-8"?>
<PhoneInfo><Brand name="華為"><Type name="p50"/><Type name="Mate40"/><Type name="HW123"/></Brand><Brand name="蘋果"><Type name="iPhone14"/></Brand>
</PhoneInfo>
//個人簡歷表單
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>提瓦特檔案館</title></head><body><hr color="aqua" /><h2 align="center">個人簡歷</h2><form action="abc"><table align="center" border="1px" cellspacing="0" cellpadding="0"><tr align="center"><td >學院</td><td colspan="5"><textarea name="school" cols="100"></textarea></td><td colspan="1" rowspan="5"><img src ="img/ganyu.png" height="280" width="200"/></td></tr><tr align="center"><td>專業</td><td colspan="5"><textarea name="zhuanye"cols="100"></textarea></td></tr><tr align="center"><td>姓名</td><td><textarea name="name"></textarea></td><td>性別</td><td><input type="radio" name="sex" value="男" />男<input type="radio" name="sex" value="女" />女</td><td>民族</td><td><select name="national"><option value="-1">請選擇</option><option value="漢">漢</option><option value="滿">滿</option><option value="蒙">蒙</option><option value="回">回</option><option value="藏">藏</option></select></td></tr><tr align="center"><td>出生年月</td><td><input type="date" name="borthday" value="borthday" /></td><td>籍貫</td><td><textarea name="jiguan"></textarea></td><td>身高(cm)</td><td><em><input type="number" name="bodyheight" /></em> </td></tr><tr align="center"><td>學歷</td><td><textarea name="xueli"></textarea></td><td>政治面貌</td><td colspan="3"><select name="zhengzhimianmao"><option value="-1">請選擇</option><option value="群眾">群眾</option><option value="共青團員">共青團員</option><option value="共產黨員">共產黨員</option></select></td></tr><tr align="center"><td>就業意向</td><td colspan="6"><textarea name="jiuyeyixiang"cols="122"></textarea></td></tr><tr align="center"><td>家庭地址</td><td colspan="6"><textarea name="homeadress"cols="122"></textarea></td></tr><tr align="center"><td>住宿地址</td><td colspan="2"><textarea name="workadress"cols="30"></textarea></td><td>聯系電話</td><td><em><textarea name="callnum"></textarea></em></td><td>手機</td><td><em><textarea name="phonenum"></textarea></em></td> </tr><tr align="center"><td>任職情況</td><td colspan="6"><textarea name="renzhi"cols="122"></textarea></td></tr><tr align="center"><td rowspan="4">本人簡歷</td><td colspan="2">起止時間</td><td colspan="2">就讀學校</td><td colspan="2">任職</td></tr><tr align="center"><td colspan="2"><input type="date" name="stime" /><input type="date" name="etime" /></td><td colspan="2"><textarea name="prischool"cols="42"></textarea></td><td colspan="2"><textarea name="pjob"cols="45"></textarea></td></tr><tr align="center"><td colspan="2"><input type="date" name="stime" /><input type="date" name="etime" /></td><td colspan="2"><textarea name="midschool"cols="42"></textarea></td><td colspan="2"><textarea name="mjob"cols="45"></textarea></td></tr><tr align="center"><td colspan="2"><input type="date" name="stime" /><input type="date" name="etime" /></td><td colspan="2"><textarea name="highschool"cols="42"></textarea></td><td colspan="2"><textarea name="hjob"cols="45"></textarea></td></tr><tr align="center"><td rowspan="6">獎懲情況</td><td colspan="6"><textarea name="s1"cols="122"></textarea></td></tr><tr align="center"><td colspan="6"><textarea name="s2"cols="122"></textarea></td></tr><tr align="center"><td colspan="6"><textarea name="s3"cols="122"></textarea></td></tr><tr align="center"><td colspan="6"><textarea name="s4"cols="122"></textarea></td></tr><tr align="center"><td colspan="6"><textarea name="s5"cols="122"></textarea></td></tr><tr align="center"><td colspan="6"><textarea name="s6"cols="122"></textarea></td></tr></table><br /><div align="right"><input type="submit" /><input type="reset" /></div></form></body>
</html>
總結
以上是生活随笔為你收集整理的java周总结1113_流总结_序列化_xml_html的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。