java讀取gxk文件,Java中常見的IO流及其使用

Java中IO流分成兩大類,一種是輸入流,所有的輸入流都直接或間接繼承自InputStream抽象類,輸入流作為數據的來源,我們可以通過輸入流的read方法讀取字節數據;另一種是輸出流,所有的輸出流都直接或間接繼承自OutputStream抽象類,輸出流接收數據,可以通過write方法寫入字節數據。在Java的IO流類中,大部分的輸入流和輸出流都是成對存在的,即如果存在XXXInputStream,那么就存在XXXOutputStream,反之亦然。(SequenceInputStream和StringBufferInputStream是特例,沒有對應的SequenceOutputStream類和StringBufferOutputStream類,稍后會解釋)。許多IO操作都可能會拋出IOException異常,比如read、write、close操作。

以下是Java的IO流中常見的輸入流,由于每個輸入流都有其對應的輸出流,所以此處就不再列出輸出流的繼承結構圖。

下面依次對這些類進行介紹以及如何使用。vcD4NCjxociAvPg0KPGJsb2NrcXVvdGU+DQoJPHA+Qnl0ZUFycmF5SW5wdXRTdHJlYW0gJmFtcDsgQnl0ZUFycmF5T3V0cHV0U3RyZWFtPC9wPg0KPC9ibG9ja3F1b3RlPg0KPHA+Qnl0ZUFycmF5SW5wdXRTdHJlYW25udTsuq/K/dbQ0OjSqrSryOvSu7j2Ynl0Zcr91+nX986qyv2+3dS0o6y1sda00NByZWFkstnX98qxo6y+zbvhtNO4w8r91+nW0LbByKHK/b7do6zV/cjnxuTD+6OsysfSu9bWu/nT2tfWvdrK/dfpyrXP1rXE0rvW1rzytaXK5MjrwfejrM/UtvjS17z7tcTKx6OsyOe5+9TaubnU7Lqvyv3W0LSryOvBy251bGzX986q19a92sr9vt2jrMTHw7TU2ta00NByZWFkstnX98qxvs274bP2z9ZOdWxsUG9pbnRlckV4Y2VwdGlvbtLss6OjrLWrysfU2rm51Oy6r8r9s/XKvLuvvde2zrK7u+HF17P20uyzo6O70+vWrs/gttTTprXEysdCeXRlQXJyYXlPdXRwdXRTdHJlYW2jrMbkxNqyv9Ky09DSu7j219a92sr91+nTw9PatOa0ondyaXRlstnX98qx0LTI67XEyv2+3aOs1Nq5udTsuq/K/dbQv8nS1LSryOvSu7j2c2l6Zda4tqjG5MTasr+1xGJ5dGXK/dfptcS089Cho6zI57n7srvWuLaoo6zEx8O0xKzIz8v8u+G9q2J5dGXK/dfps/XKvLuvzqozMtfWvdqjrLWxs9bQ+M2ouf13cml0Zc/yQnl0ZUFycmF5T3V0cHV0U3RyZWFt1tDQtMjryv2+3cqxo6zI57n7xuTE2rK/tcRieXRlyv3X6bXEyqPT4L/VvOSyu8Tcubu05rSi0OjSqtC0yOu1xMr9vt2jrMTHw7TEx8O0y/y74c2ouf2199PDxNqyv7XEZW5zdXJlQ2FwYWNpdHk8YnIgLz4NCre9t6i21MbkxNqyv86su6S1xGJ5dGXK/dfpvfjQ0MCpyN3S1LTmtKLL+dPQ0qrQtMjrtcTK/b7do6zL+dLUsrux2LWj0MTG5MTasr+1xGJ5dGXK/dfpzKvQobW81sK1xEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb27WrsDgtcTS7LOjoaM8YnIgLz4NCtLUz8LKx0J5dGVBcnJheUlucHV0U3RyZWFtILrNIEJ5dGVBcnJheU91dHB1dFN0cmVhbbXEtPrC68asts7KvsD9o7o8L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;">private static void testByteArrayInputOutStream(){ byte bytes = I am iSpring.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte buf = new byte; int length = 0; try{ while((length = bais.read(buf)) > 0){ baos.write(buf, 0, length); } System.out.println(baos.toString(UTF-8)); bais.close(); baos.close(); }catch(IOException e){ e.printStackTrace(); } }

在上面的例子中,我們通過字符串獲取字節數組將其作為ByteArrayInputStream的數據流來源,然后通過讀取ByteArrayInputStream的數據,將讀到的數據寫入到ByteArrayOutputStream中。

FileInputStream & FileOutputStream

FileInputStream 能夠將文件作為數據源,讀取文件中的流,通過File對象或文件路徑等初始化,在其構造函數中,如果傳入的File對象(或與其相對應的文件路徑所表示的File對象)不存在或是一個目錄而不是文件或者由于其他原因無法打開讀取數據,都會導致在初始化階段導致拋出FileNotFoundException異常;與FileInputStream 相對應的是FileOutputStream,可以通過FileOutputStream向文件中寫入數據,也需要通過File對象或文件路徑對其初始化,如同FileInputStream ,如果傳入的File對象(或與其相對應的文件路徑所表示的File對象)是一個目錄而不是文件或者由于其他原因無法創建該文件寫入數據,都會導致在初始化階段拋出FileNotFoundException異常。

以下是FileInputStream 和 FileOutputStream的代碼示例片段:private static void testFileInputOutStream(){ try{ String inputFileName = D:\iWork\file1.txt; String utputFileName = D:\iWork\file2.txt; FileInputStream fis = new FileInputStream(inputFileName); FileOutputStream fos = new FileOutputStream(outputFileName); byte buf = new byte; int length = 0; while ((length = fis.read(buf)) > 0){ fos.write(buf, 0, length); } fis.close(); fos.close(); }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } }

在上面的例子中,我們通過FileInputStream的read方法讀取file1.txt中的數據,然后將獲得的字節數據通過FileOutputStream的write方法將其寫入到另一個文件file2.txt中,這樣就實現了文件的拷貝,即將file1.txt拷貝到file2.txt。如果file2.txt已經存在,那么在初始FileOutputStream時,可以傳入一邊boolean變量append表示是向已有文件中追加寫入數據還是覆蓋已有數據。

PipedInputStream & PipedOutputStream

PipedInputStream和PipedOutputStream一般是結合使用的,這兩個類用于在兩個線程間進行管道通信,一般在一個線程中執行PipedOutputStream 的write操作,而在另一個線程中執行PipedInputStream的read操作。可以在構造函數中傳入相關的流將PipedInputStream 和PipedOutputStream 綁定起來,也可以通過二者的connect方法將二者綁定起來,一旦二者進進行了綁定,那么PipedInputStream的read方法就會自動讀取PipedOutputStream寫入的數據。PipedInputStream的read操作是阻塞式的,當執行PipedOutputStream的write操作時,PipedInputStream會在另一個線程中自動讀取PipedOutputStream寫入的內容,如果PipedOutputStream一直沒有執行write操作寫入數據,那么PipedInputStream的read方法會一直阻塞PipedInputStream的read方法所運行的線程直至讀到數據。單獨使用PipedInputStream或單獨使用PipedOutputStream時沒有任何意義的,必須將二者通過connect方法(或在構造函數中傳入對應的流)進行連接綁定,如果單獨使用其中的某一個類,就會觸發IOException: Pipe Not Connected.

以下是PipedInputStream和PipedOutputStream的代碼示例片段:

WriterThread類import java.io.*;public class WriterThread extends Thread { PipedOutputStream pos = null; public WriterThread(PipedOutputStream pos){ this.pos = pos; } @Override public void run() { String message = 這條信息來自于WriterThread.; try{ byte bytes = message.getBytes(UTF-8); System.out.println(WriterThread發送信息); this.pos.write(bytes); this.pos.close(); }catch (IOException e){ e.printStackTrace(); } }}

ReaderThread類import java.io.*;public class ReaderThread extends Thread { private PipedInputStream pis = null; public ReaderThread(PipedInputStream pis){ this.pis = pis; } @Override public void run() { byte buf = new byte; try{ System.out.println(ReaderThread阻塞式的等待接收數據...); int length = pis.read(buf); System.out.println(ReaderThread接收到如下信息:); String message = new String(buf, 0, length, UTF-8); System.out.println(message); pis.close(); }catch(IOException e){ e.printStackTrace(); } }}

測試代碼private static void testPipedInputOutputStream(){ try{ PipedInputStream pis = new PipedInputStream(); PipedOutputStream pos = new PipedOutputStream(); pos.connect(pis); WriterThread writerThread = new WriterThread(pos); ReaderThread readerThread = new ReaderThread(pis); readerThread.start(); writerThread.start(); }catch (IOException e){ e.printStackTrace(); } }

在上面的實例中,我們創建了兩個線程類WriterThread和ReaderThread,在WriterThread的構造函數中我們傳入了一個PipedOutputStream,并在線程執行run方法時向WriterThread中寫入數據;在ReaderThread的構造函數中我們傳入了一個PipedInputStream,在其線程執行run方法時阻塞式的執行read操作,等待獲取數據。我們通過pos.connect(pis)將這兩種流綁定在一起,最后分別執行線程ReaderThread和WriterThread。

輸出結果如下:

我們可以看到即使我們先執行了ReaderThread線程,ReaderThread中的PipedInputStream還是一直在阻塞式的等待數據的到來。

ObjectInputStream & ObjectOutputStream

ObjectOutputStream具有一系列writeXXX方法,在其構造函數中可以摻入一個OutputStream,可以方便的向指定的輸出流中寫入基本類型數據以及String,比如writeBoolean、writeChar、writeInt、writeLong、writeFloat、writeDouble、writeCharts、writeUTF等,除此之外,ObjectOutputStream還具有writeObject方法。writeObject方法中傳入的類型必須實現了Serializable接口,從而在執行writeObject操作時將對象進行序列化成流,并將其寫入指定的輸出流中。與ObjectOutputStream相對應的是ObjectInputStream,ObjectInputStream有與OutputStream中的writeXXX系列方法完全對應的readXXX系列方法,專門用于讀取OutputStream通過writeXXX寫入的數據。

以下是ObjectInputStream 和 ObjectOutputStream的示例代碼:

Person類import java.io.Serializable;public class Person implements Serializable { private String name = ; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; }}

測試代碼private static void testObjectInputOutputStream(){ try{ String fileName = D:\iWork\file.tmp; //將內存中的對象序列化到物理文件中 FileOutputStream fos = new FileOutputStream(fileName); ObjectOutputStream os = new ObjectOutputStream(fos); String description = 以下是人員數組; Person persons = new Person{ new Person(iSpring, 26), new Person(Mr.Sun, 27), new Person(Miss.Zhou, 27) }; oos.writeObject(description); oos.writeInt(persons.length); for(Person person : persons){ oos.writeObject(person); } oos.close(); //從物理文件中反序列化讀取對象信息 FileInputStream fis = new FileInputStream(fileName); ObjectInputStream is = new ObjectInputStream(fis); String str = (String)ois.readObject(); System.out.println(str); int personCount = ois.readInt(); for(int i = 0; i < personCount; i++){ Person person = (Person)ois.readObject(); StringBuilder sb = new StringBuilder(); sb.append(姓名: ).append(person.getName()).append(, 年齡: ).append(person.getAge()); System.out.println(sb); } }catch (FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }catch (ClassNotFoundException e){ e.printStackTrace(); } }

輸出結果如下:

Person實現了Serializable接口,需要注意的是,Serializable接口是一個標識接口,并不需要實現任何方法。我們首先通過ObjectOutputStream,將Person等數組信息序列化成流,然后通過調用writeObject等方法將其寫入到FileOutputStream中,從而實現了將內存中的基本類型和對象序列化保存到硬盤的物理文件中。然后通過FileInputStream讀取文件,將文件的輸入流傳入到到ObjectInputStream的構造函數中,這樣ObjectInputStream就可以通過執行對應的readXXX操作讀取基本類型或對象。當執行readObject操作時,返回的是Object類型,需要強制轉換為對應的實際類型。需要注意的是,ObjectInputStream執行readXXX操作的方法順序需要與ObjectOutputStream執行writeXXX操作的方法順序一致,否則就會讀到錯誤的數據或拋出異常,比如一開始向FileOutputStream中執行writeFloat,而在FileInputStream中首先執行了readInt操作,不會報錯,因為writeFloat寫入了4個字節的數據,readInt讀入了4個字節的數據,雖然可以將該Float轉換為對應的int,但是其實已經不是我們想要的數據了,所以要注意readXXX操作與writeXXX操作執行順序的對應。

SequenceInputStream

SequenceInputStream 主要是將兩個(或多個)InputStream在邏輯上合并為一個InputStream,比如在構造函數中傳入兩個InputStream,分別為in1和in2,那么SequenceInputStream在讀取操作時會先讀取in1,如果in1讀取完畢,就會接著讀取in2。在我們理解了SequenceInputStream 的作用是將兩個輸入流合并為一個輸入流之后,我們就能理解為什么不存在對應的SequenceOutputStream 類了,因為將一個輸出流拆分為多個輸出流是沒有意義的。

以下是關于SequenceInputStream的示例代碼:private static void testSequenceInputOutputStream(){ String inputFileName1 = D:\iWork\file1.txt; String inputFileName2 = D:\iWork\file2.txt; String utputFileName = D:\iWork\file3.txt; try{ FileInputStream fis1 = new FileInputStream(inputFileName1); FileInputStream fis2 = new FileInputStream(inputFileName2); SequenceInputStream sis = new SequenceInputStream(fis1, fis2); FileOutputStream fos = new FileOutputStream(outputFileName); byte buf = new byte; int length = 0; while((length = sis.read(buf)) > 0){ fos.write(buf, 0, length); } sis.close(); fos.close(); }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } }

我們通過FileInputStream分別獲取了file1.txt和file2.txt的輸入流,然后將這兩個輸入流作為構造函數的參數創建了SequenceInputStream 的實例,所以該SequenceInputStream 中已經在邏輯上將file1.txt和file2.txt的內容合并為了一個輸入流,然后我們讀取該SequenceInputStream 中的數據,并將讀到的數據寫入到一個新的FileOutputStream中,這樣我們就實現了將file1.txt和file2.txt合并為一個新的文件file3.txt,原有的file1.txt和file2.txt文件不受任何影響。

StringBufferInputStream

StringBufferInputStream允許通過在構造函數中傳入字符串以讀取字節,在讀取時內部主要調用了String的charAt方法。與SequenceInputStream類似,StringBufferInputStream也沒有對應的OutputStream,即不存在StringBufferOutputStream類。Java沒有設計StringBufferOutputStream類的理由也很簡單,我們假設StringBufferOutputStream存在,那么StringBufferOutputStream應該是內部通過執行write操作寫入數據更新其內部的String對象,比如有可能是通過StringBuilder來實現,但是這樣做毫無意義,因為一旦我們String的構造函數中可以直接傳入字節數組構建字符串,簡單明了,所以設計StringBufferOutputStream就沒有太大的必要了。StringBufferInputStream這個類本身存在一點問題,它不能很好地將字符數組轉換為字節數組,所以該類被Java標記為廢棄的(Deprecated),其官方推薦使用StringReader作為代替。

以下是關于StringBufferInputStream的示例代碼:private static void testStringBufferInputStream(){ String message = I am iSpirng.; StringBufferInputStream sbis = new StringBufferInputStream(message); byte buf = new byte; try{ int length = sbis.read(buf); if(length > 0){ System.out.println(new String(buf, 0, length, UTF-8)); } sbis.close(); }catch (IOException e){ e.printStackTrace(); } }

輸出結果如下:

FilterInputStream & FilterOutputStream

FilterInputStream包含了其他的輸入流,說具體點就是在其構造函數中需要傳入一個InputStream并將其保存在其名為in的字段中,FilterInputStream只是簡單的覆蓋了所有的方法,之所說是簡單覆蓋是因為在每個覆蓋函數中,它只是調用內部的保存在in字段中的InputStream所對應的方法,比如在其覆蓋read方法時,內部只是簡單調用了in.read()方法。FilterInputStream的子類可以進一步覆蓋某些方法以保持接口不變的情況下實現某一特性(比如其子類有的可以通過使用緩存優化讀取的效率)或者提供一些其他額外的實用方法。所以在使用時FilterInputStream可以讓傳入的InputStream具有一些額外的特性,即對構造函數傳入的InputStream進行了一層包裹,使用了典型的裝飾著模式,如果只看FilterInputStream本身這一個類的話,則該類自己本身意義不大,因為其只是通過內部的字段in簡單覆寫某些方法。但是如果將FilterInputStream 和其子類結合起來使用話,那么就很有用了。比如FilterInputStream 有兩個子類BufferedInputStream和DataInputStream,這兩個類在下面還會詳細介紹。BufferedInputStream對read操作做了優化,每次讀操作時都讀取一大塊數據,然后將其放入內部維護的一個字節數組緩沖區中。當外面調用BufferedInputStream的read方法時,首先去該緩沖區中讀取數據,這樣就避免了頻繁的實際的讀操作,BufferedInputStream對外沒有暴露額外的其他方法,但是其內部的read方法已經經過優化了,所以在執行讀操作的時候效率更高。DataInputStream與ObjectInputStream有點類似,可以通過一些readXXX方法讀取基本類型的數據,這是非常有用的一些方法。假設我們即想使用BufferedInputStream讀取效率高的特性,又想是想DataInputStream中的readXXX方法怎么辦呢?很簡單,如下代碼所示:InputStream is = getInputStreamBySomeway();BufferedInputStream bis = new BufferedInputStream(is);DataInputStream dis = new DataInputStream(bis);

然后我們就可以調用dis.readXXX()等方法,即快又方便,這就是FilterInputStream子類通過構造函數層層傳遞結合在一起使用多種特性的魅力。與之相對應的是BufferedOutputStream和DataOutputStream,BufferedOutputStream優化了write方法,提高了寫的效率,DataOutputStream具有很多writeXXX方法,可以方便的寫入基本類型數據。如果想使用writeXXX方法,還想提高寫入到效率,可以如下代碼使用,與上面的代碼差不多:OutputStream s = getOutputStreamBySomeway();BufferedOutputStream bos = new BufferedOutputStream();DataOutputStream dos = new DataOutputStream(bos);

然后在調用dos.writeXXX方法時效率就已經提高了。

BufferedInputStream & BufferedOutputStream

如上面所介紹的那樣,在BufferedInputStream的構造函數中需要傳入一個InputStream, BufferedInputStream內部有一個字節數組緩沖區,每次執行read操作的時候就從這buf中讀取數據,從buf中讀取數據沒有多大的開銷。如果buf中已經沒有了要讀取的數據,那么就去執行其內部綁定的InputStream的read方法,而且是一次性讀取很大一塊數據,以便填充滿buf緩沖區。緩沖區buf的默認大小是8192字節,也就是8K,在構造函數中我們也可以自己傳入一個size指定緩沖區的大小。由于我們在執行BufferedInputStream的read操作的時候,很多時候都是從緩沖區中讀取的數據,這樣就大大減少了實際執行其指定的InputStream的read操作的次數,也就提高了讀取的效率。與BufferedInputStream 相對的是BufferedOutputStream。在BufferedOutputStream的構造函數中我們需要傳入一個OutputStream,這樣就將BufferedOutputStream與該OutputStream綁定在了一起。BufferedOutputStream內部有一個字節緩沖區buf,在執行write操作時,將要寫入的數據先一起緩存在一起,將其存入字節緩沖區buf中,buf是有限定大小的,默認的大小是8192字節,即8KB,當然也可以在構造函數中傳入size指定buf的大小。該buf只要被指定了大小之后就不會自動擴容,所以其是有限定大小的,既然有限定大小,就會有被填充完的時刻,當buf被填充完畢的時候會調用BufferedOutputStream的flushBuffer方法,該方法會通過調用其綁定的OutputStream的write方法將buf中的數據進行實際的寫入操作并將buf的指向歸零(可以看做是將buf中的數據清空)。如果想讓緩存區buf中的數據理解真的被寫入OutputStream中,可以調用flush方法,flush方法內部會調用flushBuffer方法。由于buf的存在,會大大減少實際執行OutputStream的write操作的次數,優化了寫的效率。

以下是BufferedInputStream 和 BufferedOutputStream的示例代碼片段:private static void testBufferedInputOutputStream(){ try{ String inputFileName = D:\iWork\file1.txt; String utputFileName = D:\iWork\file2.txt; FileInputStream fis = new FileInputStream(inputFileName); BufferedInputStream bis = new BufferedInputStream(fis, 1024 * 10); FileOutputStream fos = new FileOutputStream(outputFileName); BufferedOutputStream bos = new BufferedOutputStream(fos, 1024 * 10); byte buf = new byte; int length = 0; while ((length = bis.read(buf)) > 0){ bos.write(buf, 0, length); } bis.close(); bos.close(); }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } }

上面的代碼將從file1.txt讀取文件輸入流,然后將讀到的數據寫入到file2.txt中,即實現了將file1.txt拷貝到file2.txt中。其實不通過BufferedInputStream 和 BufferedOutputStream也可以完成這樣的工作,使用這個兩個類的好處是,可以對file1.txt的讀取以及file2.txt的寫入提高效率,從而提升文件拷貝的效率。

內容由用戶發布,不代表本站觀點。如發現有害或侵權內容。請點擊這里

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382984.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382984.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382984.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

matlab+voronoin函數,在Voronoi區域中生成隨機點,并創建具有高維數據的Voronoi區域...

我正在使用k-means聚類算法&#xff0c;并且對于每個聚類質心&#xff0c;我試圖為質心生成n維Voronoi區域 . 之后我需要從Voronoi區域生成隨機點 .我已經嘗試使用Matlab / Octave和scipy來獲得n維Voronoi區域 . 但我有兩個問題 .生成頂點和區域后&#xff0c;如何從區域生成隨…

matlab雙縱軸刻度覆蓋問題,求助: matlab雙縱軸換圖問題

非常感謝&#xff01;不過&#xff0c;y2的范圍是-1*(10^6),7*(10^6),但是不等分:(把y1的范圍調成0.4:0.2:5.8也有28個元素&#xff0c;然后y2也有28個元素&#xff0c;但是不等分&#xff0c;是個曲線&#xff0c;而且&#xff0c;這個曲線的值與y1是有關的。數據見附件syms d…

php最新圖片漏洞,2018最新PHP漏洞利用技巧

本文學習了幾種新式的php exploit方法&#xff0c;在此做一筆記文件刪除漏洞, unlink()Phar 反序列化, file*()PHP對象實例化, ReflectionClass()0x01 WordPress Design Flaw Leads to WooCommerce RCEWooCommerce 3.4.6本版本之前存在任意刪除漏洞&#xff0c;因為WordPress的…

php v-for=,Vue中v-for循環節點的實現代碼

本篇文章給大家帶來的內容是關于Vue中v-for循環節點的實現代碼&#xff0c;有一定的參考價值&#xff0c;有需要的朋友可以參考一下&#xff0c;希望對你有所幫助。Title父循環第一次子循環第一次json數據的第幾條數值{{index}}{{indo}}{{bp.index}}{{bp.childName}}let ernew …

matlab尋找向量最小值,matlab – 在排序向量中快速搜索大于x的最小值

由于輸入已經排序,自定義二進制搜索應該有效(您可能需要對邊緣情況進行一些更新,即請求的值小于數組的所有元素)&#xff1a;function [result, res2] binarySearchExample(val)%// Generate example data and sort itN 100000000;a rand(N, 1);a sort(a);%// Run the algo…

搜matlab代碼的網站,LTE小區搜索matlab仿真

【實例簡介】LTE小區搜索過程的matlab仿真&#xff0c;比較詳細&#xff0c;內容不錯【實例截圖】【核心代碼】35738649matlab└── matlab├── Bc.m├── CellSearch.m├── PSS_detection_correction.m├── Tc.m├── absx2.m├── add_header_to_bin.m├── add_h…

php過氣了嗎,留幾手 留幾手過氣原因

1、很多時候&#xff0c;人們做事情只是為了自己&#xff0c;沒有任何理由&#xff0c;沒有任何結果&#xff0c;只是為了滿足一些內心的期望。2、太理智的人&#xff0c;往往愛到一半&#xff0c;本能地退卻。唯一突出的是他的JB。3、怎樣才能自由地睡去女文藝青年&#xff1f…

live2d PHP,Live2dHistoire_setting.php

if(!defined(EMLOG_ROOT)) {exit(error!);}function plugin_setting_view(){$live2d_setunserialize(ltrim(file_get_contents(dirname(__FILE__)./live2d.com.php),<?php die; ?>));?>KEY&#xff1a;音樂1&#xff1a;音樂2&#xff1a;音樂3&#xff1a;音樂4&a…

mysql 遠程load data,PyMySQL將(文件)數據加載到遠程MySQL實例時發生錯誤/異常

我正在使用PyMySQL-0.5.0并在將數據從文件加載到遠程MySQL實例時遇到了一個模糊的錯誤/異常。在執行“loaddatalocalinfile…”語句時&#xff0c;我看到一個異常&#xff0c;它說&#xff1a;The used command is not allowed with this MySQL version。在如果PyMySQL支持此操…

matlab頻率阻抗,有分析阻抗的matlab腳本嗎?

以上來自于谷歌翻譯以下為原文Interesting...- You cross-posted to two forums. I have deleted the other post.- You dont indicate what scope you are using or what you have tried.Most Keysight (and Agilent) scopes have an FFT or Spectrum function available. Hav…

php中修改彈窗的樣式,CSS變形彈窗效果示例

大家都知道&#xff0c;彈出窗體已經是現在網頁常用的一種交互設計&#xff0c;在這個注重交互動畫體驗的時代&#xff0c;網頁彈窗也是可以來點新鮮點子的&#xff0c;比如今天分享的CSS 變形Modal Window。當用戶點擊按鈕時&#xff0c;按鈕將會變成一個全屏的屏幕&#xff0…

php 開發高德地圖地理圍欄,高德地圖-地理圍欄功能實現

最近需要實現一個地理圍欄相關的功能。項目是和騎行相關的&#xff0c;主要是當游客或者騎友定位地址進入到對應的景點的地理圍欄里面&#xff0c;則播報景點相關的報道語音。接到需求之后&#xff0c;我開始查看高德的相關API&#xff0c;由于圍欄是多邊形的&#xff0c;則需要…

java abstractrequest,Java AbstractJackson2HttpMessageConverter類代碼示例

import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter; //導入依賴的package包/類Testpublic void testDefaultConfig() throws Exception {loadBeanDefinitions("mvc-config.xml", 14);RequestMappingHandlerMapping mapping app…

golang調用matlab,Golang中Proto編寫和生成

test.proto文件syntax "proto3";//指定proto文件版本package go; //指定文件縮放的package名//定義對象message Test {enum PhoneType //枚舉消息類型{MOBILE 0; //proto3版本中&#xff0c;首成員必須為0&#xff0c;成員不應有相同的值HOME 1;WORK 2;}int32 fl…

php折半查找面試題,php 面試題(一)

最近轉載一些面試題&#xff0c;希望能給找工作的朋友們帶來一點幫助。1.寫出5個以上你所知道的常用的Linux命令和它的功能cat&#xff0c;顯示文件內容。cd&#xff0c;改變目錄路徑。cp&#xff0c;復制文件。find&#xff0c;查找文件。grep&#xff0c;搜索、過濾信息。ls&…

次梯度法matlab代碼,實例:連續化次梯度法解 LASSO 問題

實例&#xff1a;連續化次梯度法解 LASSO 問題我們將在此頁面中構造一個 LASSO 問題并且展示連續化次梯度方法在其中的應用。目錄構造LASSO優化問題設定隨機種子。clear;seed 97006855;ss RandStream(mt19937ar,Seed,seed);RandStream.setGlobalStream(ss);構造 LASSO 優化問…

php變量使用,php變量的使用

來源:www.cncfan.com | 2006-1-11 | (有1856人讀過)就像大部份的結構化程序&#xff0c;有所謂的全局變量與局部變量&#xff0c;PHP 在這方面也是有相似之處。在 PHP 的程序執行時&#xff0c;系統會在內存中保留一塊全局變量的區域。實際運用時&#xff0c;可以透過 $GLOBALS…

php syncml 協議,基于改進的SyncML協議的圖像安全同步技術研究

Image secure synchronization technology research based on improved SyncML protocolJIA Zhaolong1賈兆攏(1991-)&#xff0c;女&#xff0c;北京郵電大學碩士生&#xff0c;主要研究方向&#xff1a;網絡安全技術與應用MA Zhaofeng2馬兆豐(1974-)&#xff0c;男&#xff0c…

php 文字水印如何居中,php文字水印和php圖片水印實現代碼(二種加水印方法)

$dst_path dst.jpg;$src_path src.jpg;//創建圖片的實例$dst imagecreatefromstring(file_get_contents($dst_path));$src imagecreatefromstring(file_get_contents($src_path));//獲取水印圖片的寬高list($src_w, $src_h) getimagesize($src_path);//將水印圖片復制到目…

qq ip探測儀 php,巧用Win7資源監視器,查看QQ好友IP

用QQ時間比較長、喜歡DIY的朋友都知道&#xff0c;有一些第三方版本的QQ或者插件可以顯示好友IP地址&#xff0c;但其實在Windows7中根本用不著第三方軟件&#xff0c;在系統自帶的資源監視器中&#xff0c;就能很方便的看到QQ好友的IP地址。首先&#xff0c;打開“任務管理器”…