国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

做網(wǎng)站的費(fèi)用記哪個(gè)科目百度pc網(wǎng)頁(yè)版登錄入口

做網(wǎng)站的費(fèi)用記哪個(gè)科目,百度pc網(wǎng)頁(yè)版登錄入口,山西省呂梁市郵政編碼,宏遠(yuǎn)建設(shè)有限公司網(wǎng)站阿華代碼,不是逆風(fēng),就是我瘋 你們的點(diǎn)贊收藏是我前進(jìn)最大的動(dòng)力!! 希望本文內(nèi)容能夠幫助到你!! 目錄 一:認(rèn)識(shí)文件 1:文件的概念 2:文件的結(jié)構(gòu) 3:文件路徑…

8e19eee2be5648b78d93fbff2488137b.png

阿華代碼,不是逆風(fēng),就是我瘋

你們的點(diǎn)贊收藏是我前進(jìn)最大的動(dòng)力!!

希望本文內(nèi)容能夠幫助到你!!

目錄

一:認(rèn)識(shí)文件

1:文件的概念

2:文件的結(jié)構(gòu)

3:文件路徑

(1)絕對(duì)路徑

(2)相對(duì)路徑

(3)舉例

二:文件的分類(lèi)

1:文本文件

2:二進(jìn)制文件

3:如何判斷文件的種類(lèi)

三:Feil類(lèi)對(duì)文件操作

1:Feil類(lèi)

2:File類(lèi)的構(gòu)造方法

3:獲取屬性方法

代碼示例一

代碼示例二

?4:判斷方法

?5:創(chuàng)建刪除方法

6:創(chuàng)建移動(dòng)方法

7:創(chuàng)建File對(duì)象代表的目錄

8:文件改名操作

四:文件流

五:字節(jié)流

1:InputStream

(0)打開(kāi)文件

(1)構(gòu)造方法

(2)類(lèi)/異常解析

(3)文件資源泄露

(4):read方法

①引入

②三種參數(shù)代碼示例

2:OutputStream

3:Scanner聯(lián)動(dòng)

?編輯

六:字符流

1:Reader類(lèi)

2:Writer類(lèi)?


一:認(rèn)識(shí)文件

1:文件的概念

對(duì)于計(jì)算機(jī)來(lái)說(shuō),“文件”是一個(gè)非常廣義的概念,可以指普通的文件,文件夾,一些硬件設(shè)備也被抽象成了文件(例如:鍵盤(pán),耳機(jī),顯示器,網(wǎng)卡等)

對(duì)于機(jī)械硬盤(pán)來(lái)說(shuō)它更加擅長(zhǎng)順序讀寫(xiě),不擅長(zhǎng)隨機(jī)讀寫(xiě)

比如有一個(gè)很大的文件,我們需要把這個(gè)文件整體復(fù)制一份就是順序讀寫(xiě)

某個(gè)目錄中有很多的小文件,(數(shù)目比較多)需要把整個(gè)目錄都拷貝一份,就是隨機(jī)讀寫(xiě)。

2:文件的結(jié)構(gòu)

文件系統(tǒng)的結(jié)構(gòu)是按照“樹(shù)形結(jié)構(gòu)”來(lái)組織文件的,是N叉樹(shù),一個(gè)普通文件(非目錄)就是一個(gè)葉子節(jié)點(diǎn),對(duì)一個(gè)目錄文件來(lái)說(shuō),里面又可以有很多的子節(jié)點(diǎn)

3:文件路徑

形如上述的圖片,從樹(shù)根節(jié)點(diǎn),一級(jí)一級(jí)的往下走,直到直到目標(biāo)文件,這個(gè)過(guò)程中經(jīng)過(guò)的所有文件目錄的名字串起來(lái),使用正斜杠——“/”,或者反斜杠——“\”分割,就構(gòu)成了“路徑”

注:此過(guò)程并非是遍歷樹(shù),可以想象成類(lèi)似于Hash這樣的結(jié)構(gòu)

(1)絕對(duì)路徑

從樹(shù)根節(jié)點(diǎn) 出發(fā),一層一層到達(dá)目標(biāo)文件

(2)相對(duì)路徑

先指定一個(gè)“當(dāng)前目錄”/“基準(zhǔn)目錄”,從當(dāng)前目錄出發(fā),找到目標(biāo)文件

(3)舉例

二:文件的分類(lèi)

1:文本文件

文本文件是按照“字符串”的形式來(lái)理解文本內(nèi)容的(文本文件里面的二進(jìn)制內(nèi)容,也都表示為字符串,可以理解為——二進(jìn)制內(nèi)容都是合法的字符(像字符編碼,英文字母用ASCII,漢字用utf8/gbk))

舉例:.java? ?.c? ? .cpp? ?文本文檔

2:二進(jìn)制文件

二進(jìn)制文件沒(méi)有上述的限制,儲(chǔ)存任何數(shù)據(jù)都可以。

舉例:圖片,音頻,可執(zhí)行程序,動(dòng)態(tài)庫(kù),.class文件,富文本文件

富文本文件包括不限于:word? docx excle? xlsx? power point? pptx

3:如何判斷文件的種類(lèi)

使用記事本打開(kāi)文本文件,如果看到的是亂碼,就是二進(jìn)制文件

三:Feil類(lèi)對(duì)文件操作

引入:在Java中,對(duì)于文件操作的Api這里有兩類(lèi)

針對(duì)文件系統(tǒng)的操作:創(chuàng)建,刪除,重命名,

針對(duì)文件內(nèi)容的操作:讀文件,寫(xiě)文件

1:Feil類(lèi)

2:File類(lèi)的構(gòu)造方法

3:獲取屬性方法

代碼示例一

構(gòu)造File用絕對(duì)路徑

import java.io.File;
import java.io.IOException;public class IO1 {public static void main(String[] args) throws IOException {File f = new File("C:/User/1/test.txt");//絕對(duì)路徑//File f = new File("./test.txt");System.out.println(f.exists());//判斷文件目錄是否存在System.out.println(f.getParent());System.out.println(f.getName());//返回file對(duì)象的名稱(chēng)System.out.println(f.getPath());//返回file對(duì)象的文件路徑System.out.println(f.getAbsolutePath());//返回絕對(duì)路徑System.out.println(f.getCanonicalPath());//返回對(duì)象修飾過(guò)后的路徑canonical規(guī)范的}}

代碼示例二

構(gòu)造對(duì)象用相對(duì)路徑

.getPath()得到的就是構(gòu)造方法中的參數(shù)

Canonical(讀音:克撓你扣)規(guī)范的——可以理解為化簡(jiǎn)路徑

import java.io.File;
import java.io.IOException;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-01* Time: 19:28*/
public class IO1 {public static void main(String[] args) throws IOException {//File f = new File("C:/User/1/test.txt");//絕對(duì)路徑File f = new File("./test.txt");System.out.println(f.exists());//判斷文件目錄是否存在System.out.println(f.getParent());//返回父目錄文件路徑System.out.println(f.getName());//返回file對(duì)象的名稱(chēng)System.out.println(f.getPath());//返回file對(duì)象的文件路徑System.out.println(f.getAbsolutePath());//返回絕對(duì)路徑System.out.println(f.getCanonicalPath());//返回對(duì)象修飾過(guò)后的路徑canonical規(guī)范的}}

?4:判斷方法

我們可以使用file.createNewFile(如下代碼),也可以直接手動(dòng)在當(dāng)前目錄創(chuàng)建一個(gè)File文件——名字叫test.txt

import java.io.File;
import java.io.IOException;public class IODemon2 {public static void main(String[] args) throws IOException {File file = new File("./test.txt");System.out.println(file.exists());//文件存在嗎System.out.println(file.isFile());//是普通文件嘛System.out.println(file.isDirectory());//是目錄嗎boolean ret = file.createNewFile();//創(chuàng)建文件;返回的結(jié)果就是創(chuàng)建成功和創(chuàng)建失敗System.out.println("ret:" + ret);}}

?5:創(chuàng)建刪除方法

file.delete刪除文件,返回值類(lèi)型為boolean類(lèi)型

file.deleteNewFile退出時(shí)刪除文件,返回值為void

注:刪除目錄只能一級(jí)一級(jí)的刪除

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;import java.io.File;
import java.io.IOException;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-01* Time: 20:17*/
public class IODemon3 {public static void main(String[] args) throws IOException, InterruptedException {File file = new File("./test.txt");//boolean ret = file.delete();//刪除文件//System.out.println(ret);boolean ret = file.createNewFile();//創(chuàng)建文件file.deleteOnExit();//返回值為void類(lèi)型,退出的時(shí)候刪除文件,測(cè)試的時(shí)候注意看左邊的目錄欄Thread.sleep(5000);}}

6:創(chuàng)建移動(dòng)方法

import java.io.File;
import java.util.Arrays;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-01* Time: 20:44*/
public class IODemon4 {public static void main(String[] args) {File file = new File(".");//返回的是對(duì)象代表的目錄下所有的文件//返回的是一個(gè)String[]類(lèi)型的數(shù)組String[] files = file.list();System.out.println(Arrays.toString(files));//返回的file對(duì)象代表的目錄下所有的文件,不過(guò)是以file對(duì)象表示File[] files2 = file.listFiles();System.out.println(Arrays.toString(files2));}
}

7:創(chuàng)建File對(duì)象代表的目錄

import java.io.File;
import java.lang.reflect.Field;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-01* Time: 20:58*/
public class IODemon5 {public static void main(String[] args) {/* File file = new File("./aaa");//創(chuàng)建file為對(duì)象的目錄boolean ret = file.mkdir();System.out.println(ret);*//* File file = new File("./bbb");boolean ret2 = file.mkdirs();//mkdirs(可以用于創(chuàng)建單個(gè)目錄,也可以用于創(chuàng)建多級(jí)目錄)System.out.println(ret2);*//*File file = new File("./aaa/bbb/ccc");boolean ret2 = file.mkdirs();//mkdirs(可以用于創(chuàng)建單個(gè)目錄,也可以用于創(chuàng)建多級(jí)目錄)System.out.println(ret2);*/File file = new File("./bbb");boolean ret = file.delete();//刪除只能一級(jí)目錄一級(jí)目錄的刪System.out.println(ret);}
}

8:文件改名操作

注意細(xì)節(jié):file1文件改名為file2對(duì)象

import java.io.File;public class IODemon6 {public static void main(String[] args) {File file1 = new File("./aaa/bbb/ccc/bbb");File file2 = new File("./bbb");boolean ret = file2.renameTo(file1);//把bbb這個(gè)文件移入"./aaa/bbb/ccc"的/ccc下System.out.println(ret);}}

四:文件流

什么是文件流呢?

舉個(gè)例子:要寫(xiě)100字節(jié)的內(nèi)容,我們可以分10次寫(xiě)每次寫(xiě)10字節(jié)的內(nèi)容,也可以分5次來(lái)寫(xiě),每次寫(xiě)20字節(jié)的內(nèi)容;當(dāng)然也可以一次性寫(xiě)完

“流”是操作系統(tǒng)提供的概念,Java標(biāo)準(zhǔn)庫(kù)中對(duì)于“進(jìn)行了”封裝,提供了一組類(lèi)來(lái)負(fù)責(zé)這些工作

我們把這些類(lèi)主要分為兩種:字節(jié)流和字符流

五:字節(jié)流

代表類(lèi):InputStream——輸入流,OutPutStream——輸出流

1:InputStream

(0)打開(kāi)文件

按照讀文件的方式打開(kāi)一個(gè)文件

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-02* Time: 11:46*/
public class IODemon7 {public static void main(String[] args) throws IOException {/*//打開(kāi)文件InputStream inputStream = new FileInputStream("./test.txt");//在中間一定會(huì)涉及一些對(duì)文件的操作之類(lèi)的,如果遇到bug或者像return之類(lèi)的不可控的操作,close操作可能就會(huì)執(zhí)行不到了//打開(kāi)了文件最后還要關(guān)掉,打開(kāi)文件操作會(huì)拋出FileNotFoundException異常inputStream.close();//關(guān)閉文件會(huì)拋出IOException異常,前后兩者為父類(lèi)子類(lèi)的關(guān)系*//*//第二種寫(xiě)法InputStream inputStream = null;try {inputStream = new FileInputStream("./test.txt");}finally{inputStream.close();}*//*//第三種寫(xiě)法,try with resources版本try (InputStream inputStreeam = new FileInputStream("./test.txt")){//出了try{}代碼塊范圍后,編譯器會(huì)自動(dòng)調(diào)用.close方法關(guān)閉文件//FileInputStream繼承于InputStream,InputStream又實(shí)現(xiàn)了Closeable接口,必須實(shí)現(xiàn)了Closeable接口才可以被放到try()里面}*/}}

(1)構(gòu)造方法

注:你給cpu送的信息叫輸入,比如讀操作。cpu給存儲(chǔ)器等這些硬件設(shè)備送的信息叫做輸出,比如寫(xiě)操作

(2)類(lèi)/異常解析

(3)文件資源泄露

如果不執(zhí)行文件關(guān)閉.close方法,就會(huì)有大問(wèn)題。這里本質(zhì)上是釋放了文件的相關(guān)資源(PCB文件描述符表,不懂得鐵子可以看前面寫(xiě)過(guò)的文章)這個(gè)表本質(zhì)是一個(gè)數(shù)組或者順序表,每打開(kāi)一個(gè)文件,就會(huì)占據(jù)一個(gè)位置,如果不關(guān)閉一直打開(kāi)就會(huì)導(dǎo)致表被耗盡,后續(xù)再想打開(kāi)就會(huì)報(bào)錯(cuò)。

那么提問(wèn),文件描述符表不會(huì)動(dòng)態(tài)擴(kuò)容嗎?對(duì)操作系統(tǒng)的內(nèi)核來(lái)說(shuō),需要很高的性能,付出的代價(jià)太大了,容易造成系統(tǒng)的卡頓

(4):read方法

①引入

read讀文件就是把硬盤(pán)數(shù)據(jù)讀取到內(nèi)存當(dāng)中buffer,譯為緩沖區(qū)

注意點(diǎn)①:offset此處縮寫(xiě)了

注意點(diǎn)②:傳入的數(shù)組,在方法內(nèi)部對(duì)數(shù)組內(nèi)容修改過(guò)后,方法外部也能生效

注意點(diǎn)③:字符流讀取文件的時(shí)候,

②三種參數(shù)代碼示例

①*不帶參數(shù)的讀,一個(gè)一個(gè)字符的讀

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-02* Time: 12:18*/
public class IOStream8 {public static void main(String[] args) throws IOException {try(InputStream inputStream = new FileInputStream("./test.txt")){//讀取操作,讀到-1的時(shí)候就會(huì)停止while(true){int a = inputStream.read();if (a == -1){break;}System.out.print(a + " ");//讀取的abcdef是ascii碼值}}}
}

②*帶入數(shù)組參數(shù)的讀取,一次讀取多個(gè)字符

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-02* Time: 12:56*/
public class IODemon9 {public static void main(String[] args) throws IOException {try(InputStream inputStream = new FileInputStream("./test.txt")){while (true){//也可以一次讀若干個(gè)字節(jié),buffer(緩沖區(qū))byte[] buffer = new byte[1024];//讀的時(shí)候會(huì)嘗試把buffer[1024]填滿(mǎn)int n = inputStream.read(buffer);//傳入的參數(shù)是buffer數(shù)組,方法內(nèi)部對(duì)數(shù)組內(nèi)容進(jìn)行修改后,方法外部也能生效,實(shí)際上填不滿(mǎn)1024個(gè)字節(jié),if (n == -1){break;//讀取到最后一個(gè)字符,就break}for (int i = 0; i < n; i++) {System.out.printf(" %x " ,buffer[i]);//遍歷數(shù)組,并打印}}}}
}

③*構(gòu)造String從0讀到n(利用offset)

offset翻譯為抵消補(bǔ)償

注意看while循環(huán):什么是文件流,假設(shè)我們要讀取的文件很大,在這個(gè)循環(huán)中,每次盡可能讀取1024個(gè)字節(jié)(可能讀到的字節(jié)數(shù)比這個(gè)要小),這次讀不完,我們就先用String給存起來(lái)(0到n),下一次while循環(huán)就接著讀,“特別像字符串拼接? ?”

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-02* Time: 13:22*/
public class IODemon10 {public static void main(String[] args) throws IOException {try(InputStream inputStream = new FileInputStream("./test.txt")){while (true){//也可以一次讀若干個(gè)字節(jié),buffer(緩沖區(qū))byte[] buffer = new byte[1024];//讀的時(shí)候會(huì)嘗試把buffer[1024]填滿(mǎn)int n = inputStream.read(buffer);//傳入的參數(shù)是buffer數(shù)組,方法內(nèi)部對(duì)數(shù)組內(nèi)容進(jìn)行修改后,方法外部也能生效if (n == -1){break;}String string = new String(buffer , 0 , n);//構(gòu)造一個(gè)String對(duì)象,數(shù)組前n個(gè)字節(jié)來(lái)構(gòu)造System.out.printf(string);//遍歷數(shù)組,并打印}}}
}

2:OutputStream

按照寫(xiě)的方式打開(kāi)文件

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-05* Time: 12:06*/
public class IODemo11 {public static void main(String[] args) throws FileNotFoundException {try{//打開(kāi)操作會(huì)把原有文件中的內(nèi)容清空,所以罪魁禍?zhǔn)撞皇荳rite操作而是打開(kāi)操作OutputStream outputStream = new FileOutputStream("./test.txt");//OutputStream outputStream = new FileOutputStream("./test.txt",true);追加寫(xiě)byte[] buffer = new byte[]{97,98,99,100,101};outputStream.write(buffer);}catch (IOException e) {throw new RuntimeException(e);}}
}

3:Scanner聯(lián)動(dòng)

Scanner(System.in)中System.in本質(zhì)就是一個(gè)InputStream

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-05* Time: 13:21*/
public class IODemo14 {public static void main(String[] args) throws FileNotFoundException {try(InputStream inputStream = new FileInputStream("./test.txt")){Scanner scanner = new Scanner(inputStream);while(scanner.hasNext()){String s = scanner.next();System.out.println(s);}} catch (IOException e) {throw new RuntimeException(e);}}
}

六:字符流

以字符為單位進(jìn)行讀寫(xiě),例如:用utf8表示漢字,3個(gè)字節(jié)就是一個(gè)漢字,每次讀寫(xiě)都得以3個(gè)字節(jié)為單位來(lái)進(jìn)行讀寫(xiě),不能一次讀半個(gè)漢字

在用char類(lèi)型的數(shù)組存儲(chǔ)漢字時(shí)是把3個(gè)字節(jié)組成的utf8漢字轉(zhuǎn)化為了Unicode,輸出為String類(lèi)型時(shí)在把Unicode轉(zhuǎn)化為字節(jié)

代表類(lèi):Reader——輸入,Writer——輸出

1:Reader類(lèi)

代碼示例

把byte換為char測(cè)試一下,區(qū)別在于打印漢字

import java.io.*;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-05* Time: 12:33*/
public class IODemo12 {public static void main(String[] args) {try{//Reader和Writer的字符流與OutputStream和InputStream相似Reader reader= new FileReader("./test.txt");while(true){char[] buffer = new char[1024];int n = reader.read(buffer);if (n == -1){break;}String s = new String(buffer , 0 , n);System.out.println(s);}} catch (IOException e) {throw new RuntimeException(e);}}
}

如果文件中有內(nèi)容換行操作了,那么有可能會(huì)有一些內(nèi)容打印不到

2:Writer類(lèi)?

記住:要把文件打開(kāi)操作放到try()的括號(hào)里,要不然不會(huì)默認(rèn)執(zhí)行close關(guān)閉文件操作

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-10-05* Time: 13:07*/
public class IODemo13 {public static void main(String[] args) {try(Writer writer = new FileWriter("./test.txt",true)) {String s = "可選擇續(xù)寫(xiě)操作 或者 清空在寫(xiě)操作";writer.write(s);} catch (IOException e) {throw new RuntimeException(e);}}
}

http://m.aloenet.com.cn/news/28578.html

相關(guān)文章:

  • 怎么建小說(shuō)網(wǎng)站微信crm客戶(hù)管理系統(tǒng)
  • 邢臺(tái)網(wǎng)站制作地方谷歌引擎搜索
  • jsp 做網(wǎng)站還是php北京網(wǎng)站制作推廣
  • 鎮(zhèn)江模板網(wǎng)站小紅書(shū)廣告投放平臺(tái)
  • 移動(dòng)網(wǎng)站趨勢(shì)推廣引流平臺(tái)
  • 在線(xiàn)設(shè)計(jì)軟件南寧seo渠道哪家好
  • 做淘寶詳情頁(yè)的素材網(wǎng)站2023年8月疫情爆發(fā)
  • 外貿(mào)網(wǎng)站建設(shè)網(wǎng)站漯河seo公司
  • 自己做的網(wǎng)站 怎么在網(wǎng)上銷(xiāo)售登錄百度app
  • 重慶微信網(wǎng)站制作廈門(mén)人才網(wǎng)唯一官網(wǎng)登錄
  • wordpress全球化移投界seo
  • 網(wǎng)站建設(shè)需準(zhǔn)備什么軟件門(mén)戶(hù)網(wǎng)站怎么做
  • wordpress億起發(fā)搜索引擎seo
  • 網(wǎng)站優(yōu)化和推廣方案ppt免費(fèi)網(wǎng)站大全下載
  • 有趣的網(wǎng)站網(wǎng)址之家百度搜索關(guān)鍵詞優(yōu)化方法
  • 自己做網(wǎng)站推廣在那個(gè)網(wǎng)站鄭州做網(wǎng)站最好的公司
  • 侯斯特 wordpressseo軟件服務(wù)
  • 找南昌兼職做網(wǎng)站的百度第三季度財(cái)報(bào)2022
  • 用博客做網(wǎng)站如何做推廣宣傳
  • 天安節(jié)能科技園公司做網(wǎng)站網(wǎng)站設(shè)計(jì)公司排行
  • 企業(yè)官方網(wǎng)站開(kāi)發(fā)平臺(tái)網(wǎng)絡(luò)營(yíng)銷(xiāo)網(wǎng)站推廣
  • ruby+網(wǎng)站開(kāi)發(fā)華為手機(jī)業(yè)務(wù)最新消息
  • 成都網(wǎng)站建設(shè)多少錢(qián)sem技術(shù)培訓(xùn)
  • 圖庫(kù)網(wǎng)站源碼下載域名注冊(cè)騰訊云
  • 有沒(méi)有做絲網(wǎng)的網(wǎng)站呀全能優(yōu)化大師
  • 如何看網(wǎng)站的流量網(wǎng)站流量來(lái)源
  • 怎么做網(wǎng)站教程圖片google引擎免費(fèi)入口
  • 網(wǎng)站設(shè)計(jì)機(jī)構(gòu)文檔在線(xiàn)制作網(wǎng)站免費(fèi)
  • 網(wǎng)站做的漂浮為什么不動(dòng)免費(fèi)p站推廣網(wǎng)站入口
  • 網(wǎng)站設(shè)計(jì)怎么保持風(fēng)格一致視頻廣告接單平臺(tái)