身為架構(gòu)師谣蠢,這篇IO流File的講解及使用你一定得看看粟耻,寫的非常詳細

IO流對象

File類

文件:計算機中存儲數(shù)據(jù)(音樂,電影眉踱,word)
目錄:Directory 計算機中的文件夾挤忙,文件夾不能存儲數(shù)據(jù),保護文件的容器
路徑:文件和目錄所在計算機中的位置
java.io.File類:文件和目錄以及路徑谈喳,變成對象册烈,F(xiàn)ile類的方法,操作對象
File類具有平臺無關(guān)性:Windows系統(tǒng)婿禽,Linux系統(tǒng)赏僧,Mac系統(tǒng)

File類的構(gòu)造方法

URI:統(tǒng)一資源標(biāo)識符,包含了URL扭倾,包含非網(wǎng)址
URL:統(tǒng)一資源定位符淀零,就是互聯(lián)網(wǎng)的網(wǎng)絡(luò)地址 協(xié)議://域名 http://www.baidu.com

File(String path)字符串參數(shù)必須是路徑,字符串路徑變成File對象
File(String parent,String child)parent字符串類型的父路徑膛壹,child字符串子路徑
驾中。絕對路徑:路徑在計算機中具有唯一性
。相對路徑:C: \Java\jdk1.8\bin模聋,jdk1.8為參照路徑
.肩民。c:\java是參照路徑的父路徑 (上一季度文件夾) 唯一性
.。bin 是參照路徑的子路徑 (下一級的文件夾) 可以多個
File(File parent,String child)e(File parent,String child) parent是File類型父路徑,child字符串子路徑

public static void main(String[ ] args) {
    method( );
    method_2();
    method_3();
}
/*
*File類構(gòu)造,傳遞字符串參數(shù)(路徑)
*/
public static void method() {
    // C: \Java\jdk1.8.0_ 221\bin
    File file = new File("C: \\Java\\jdk1.8.0_ 221\\bin");
    System.out.println(file);
}
/*
*File類構(gòu)造,傳遞字符串的父路徑和字符串的子路徑
*/
public static void method_2() {
    File file = new File("C:\\Java","jdk1.8.0_221");
    System.out.println(file);
}
/*
*File類構(gòu)造,傳遞File類型父路徑和字符串的子路徑
*/
public static void method_3(){
    File parent = new File("C:\\Java");
    File file = new File(parent, "jdk1.8.0_ _221");
    System.out.println(file);
}

File類的靜態(tài)成員變量

static String separator與系統(tǒng)有關(guān)的默認名稱分隔符
static String pathSeparator與系統(tǒng)有關(guān)的路徑分隔符 撬槽;一個路徑結(jié)束

File類的創(chuàng)建

boolean createNewFile()創(chuàng)建新文件,創(chuàng)建成功返回true趾撵,文件的路徑和文件名侄柔,在File的構(gòu)造方法中
。如果文件已經(jīng)存在占调,不會創(chuàng)建暂题,返回false

public static void main(String[] args) throws IOException {
    method( ) ;
    method_2( );
}
/*
*File類方法createNewFile()創(chuàng)建文件
*/
public static void method() throws IOException {
    File file = new File("d:\\abc.txt");
    boolean b = file. createNewFile( );
    System. out. println(b);
}
/*
*File類方法,mkdirs()創(chuàng)建文件夾
*/
public static void method_2( ) {
    File file =new File("d:\\abc");
    boolean b =file . mkdirs();
    System. out. println(b);
}

File類的刪除方法

boolean delete()刪除文件

public static void main(String[] args) throws IOException {
    method_ 3( );
}
public static void method_ 3( ) {
    File file = new File("d:\\1. txt");
    boolean b=file.delete();
    System. out. println(b);
}

File類的判斷方法

boolean exists()判斷File構(gòu)造方法中的路徑,是否真的存在究珊,存在返回true
boolean isDirectory()判斷File構(gòu)造方法中的路徑薪者,是不是一個目錄(文件夾),是目錄返回true
boolean isFile()判斷File構(gòu)造方法中的路徑剿涮,是不是一個文件言津,是文件返回true

public Istatic void main(String[] args) {
    method( );
    method_2( );
}
/*
*File類方法,判斷路徑是否存在exists()
*/
public static void method( ) {
    File file = new File("d:\\springboot_ initializr.jar");
    boolean b=file.exists();
    System. out. println(b);
}
/*
*File類方法攻人,判斷路徑是文件,還是文件夾
*isDirectory() isFile()
*/
public static void method_2( ) {
    File file = new File("d:\\driver");
    if(file.exists()) {
        boolean b = file. isDirectory();
        System. out . println(b);
        b = file. isFile();
        System. out . println(b);
    }
}

File類的獲取

String getName()返回File構(gòu)造方法中,路徑的名字悬槽,可能是文件名怀吻,也可能是文件夾名
String getPath()返回路徑名的字符串形式
File getAbsoluteFile()返回路徑的絕對路徑,返回值是File對象
File getParentFile()返回指定路徑的父路徑,返回值是File對象

public static void main(String[] args) {
    method( );
    method_2();
    method_3();
    method_4();
}
/*
*File類獲取方法,getName()獲取名字
*/
public static void method( ) {
    File file = new File("C:\\Java\\jdk1.8.0_221\\bin");
    String name = file. getName( );
    System. out . println(name) ;
    file = new File("C:\\Java\\jdk1.8.0_221\\bin\\javac. exe");
    String name = file. getName( );
    System. out . println(name) ;
}
/*
*File類獲取方法, getPath()獲取路徑名的字符串形態(tài)
*/
public static void method_2() {
    File file = new File("C:\\Java\\jdk1.8.0_ 221", "bin");
    String path = file. getPath();
    System. out . println(path) ;
}
/*
*File類獲取方法初婆,getAbsoluteFile() 獲取絕對路徑
*eclipse環(huán)境蓬坡,獲取的絕對路徑,是當(dāng)前工程的路徑
*/
public static void method_3() {
    File file = new File("bin");
    File absoluteFile =_ file. getAbsoluteFile();
    System. out . println(absoluteFile) ;
}
/*
*File類的獲取方法磅叛,getParentFile() 獲取父路徑的
*方法返回值,是File對象
*/
public static void method_4() {
    File file = new File("C:\\Java\\jdk1.8.0_ 221\\bin");
    //獲取父路徑
    File parentFile = file. getParentFile();
    System. out. println(parentFile);
    parentFile = file. getParentFile();
    System. out. println(parentFile);
}

File類的list開頭方法

long length()獲取到文件的字節(jié)數(shù)
File[] listFiles()獲取構(gòu)造方法中路徑屑咳,里面的所有文件列表(文件夾)
。文件夾進行遍歷
static File[] listRoots()獲取當(dāng)前計算機系統(tǒng)中的所有根目錄

public static void main(String[] args) {
    method();
    method_2();
    method_3();
}
/*
*File類方法,length()文件的字節(jié)數(shù)
*/
public static void method() {
    File file = new File("C:\\Java\\jdk1.8.0_ 221\\src.zip");
    long length = file.length();
    System. out. println(length);
}
/*
*File類方法弊琴,listFiles()遍歷文件夾
*/
public static void method_2() {
    File file = new File("C:\\Java\\jdk1.8.0_ 221");
    File[] files = file.listFiles( );
    for(File f : files) {
        System. out . println(f) ;
    }
}
/*
 * File類方法,listRoots(()靜態(tài)
 */
public static void method_3() {
    File[] files=File.listRoots();
    for(File f:files) {
        System.out.println(f);
       }
}

文件過濾器

需求:目錄d:/abc里面有多個文件兆龙,F(xiàn)ile類的方法listFiles()獲取abc目錄下面的文件,只要.java文件访雪,其他類型的文件不獲取

java.io.FileFilter接口详瑞,文件過濾器接口,對獲取的文件進行過濾
臣缀。此接口的實現(xiàn)類坝橡,可以傳遞給方法listFiles()
。抽象方法boolean accept(File f)自定義實現(xiàn)類
File[] listFiles(FileFilter filter)傳遞文件過濾器的接口

public static void main(String[] args) {
    File file = new File("d:/abc");
    //遍歷abc目錄,方法傳遞文件過濾器實現(xiàn)類對象
    File[] files = file.listFiles( new MyFilter() );
    for(File f : files) {
        System. out . println(f);
    }
}
//定義文件過濾接口的實現(xiàn)類
class MyFilter implements FileFilter{
    public boolean accept(File pathname) {
        //判斷pathname路徑,表示的文件,是不是.java文件
        //文件的后綴名是不是.javal String類方法endsWith  忽略大小寫
        return pathname . getName( ). toLowerCase() .endsWith(" . java"); 
    }
}

目錄全遍歷

在遍歷一個目錄的時候精置,如果發(fā)現(xiàn)還有子目錄,進去繼續(xù)遍歷
方法自己調(diào)用自己進行的遍歷

public static void main(String[ ] args) {
    iteratorDir(new File("d:/abc"));
}
/*
*目錄的遍歷:遍歷哪個目錄,傳遞參數(shù)
*/
public static void iteratorDir(File dir) {
    System . out . println(dir);
    //File對象方法listFiles()目錄里的遍歷
    File[] files = dir .listFiles();
    for(File f : files) {
        //判斷计寇,如果f還是目錄
        if(f . isDirectory()) {
            //繼續(xù)遍歷iteratorDir()就是接收目錄 ,遍歷目錄
            //再定義相同代碼的方法,沒有必要脂倦,自己調(diào)用我自己
            iteratorDir(f);
        }else {
            System . out . println(f);
        }
    }
}

IO流對象

I:Input 輸入
O:Output 輸出
流對象:數(shù)據(jù)流,數(shù)據(jù)從一一個設(shè)備流到另-個設(shè)備
例子:文檔從硬盤中番宁,流入到內(nèi)存中,文檔從內(nèi)存中赖阻,流入到硬盤中
文檔從硬盤中,流入到移動硬盤.
可以從一臺機器,流到另一臺機器

一切都是字節(jié)

任何數(shù)據(jù)蝶押,在文件中的形態(tài),都是字節(jié)(文本火欧,圖片棋电,音樂,游戲)苇侵,互聯(lián)網(wǎng)的傳輸赶盔,下載文件,網(wǎng)盤

IO流的分類

按照數(shù)據(jù)的流向分
榆浓。輸入流 Input
于未。輸出流 Output
按照操作的數(shù)據(jù)類型分
。字節(jié)流 字節(jié)流可以操作任意類型的數(shù)據(jù)
。字符流 字符流只能操作文本類型數(shù)據(jù)
■什么是文本類型數(shù)據(jù):使用文本公具(記事本烘浦,Notepad++抖坪,EdiPlus)打開后,人可以直接閱讀的
分類的合并
谎倔。字節(jié)輸出流
■頂層的抽象父類:java.io.OutputStream
柳击。字節(jié)輸入流
■頂層的抽象基類: java. io. Inputstream
。字符輸出流
■頂層的抽象基類: java. i0. writer
片习。字符輸入流
■頂層的抽象基類:java. io. Reader

字節(jié)輸出流

可以操作任意類型數(shù)據(jù)捌肴,從java的程序中,輸出Output藕咏,又稱為寫入
OutStream類的方法:都是寫入數(shù)據(jù)的方法write

void write(int b)寫入單個字節(jié)
void write(byte[] b)寫入字節(jié)數(shù)組
void write(byte[] b,int off,int len)寫入字節(jié)數(shù)組的一部分状知,開始索引,寫入個數(shù)
close()關(guān)閉此流孽查,釋放資源

OutputStream類的子類

IO流對象的命名非常的有可讀性前綴+后綴
前綴: 這個流能干什么時期
后綴: 這個流屬于哪個分類
子類FileOutputStream:

構(gòu)造方法
饥悴。FileOutputStream(String name)傳遞字符串的文件名(數(shù)據(jù)目的)
。FileOutputStream(File file)傳遞File類型的文件
IO流對象盲再,write方法西设,沒有實現(xiàn)寫入功能,調(diào)用操作系統(tǒng)的功能答朋,實現(xiàn)的寫入贷揽,釋放操作系統(tǒng)的資源

/*
*I0流,寫入文件的數(shù)據(jù)
*字節(jié)輸出流的子類File0utputStream
*流對象的使用公共步驟:
*1:創(chuàng)建流對象
*2:調(diào)用流對象的方法,讀取,寫
*3:釋放資源
*/
public static void main(String[] args) throws IOException{
    method();
    method_2();
    method_3();
}
/*
*File0utputStream寫入單個字節(jié)
*/
public static void method() throws IOException {
    //創(chuàng)建流對象,構(gòu)造方法綁定數(shù)據(jù)目的
    FileOutputStream fos = new FileOutputStream("d:/1.txt");
    //流對象的方法write寫入數(shù)據(jù)
    fos. write(100);
    //釋放資源
    fos.close();
}
/*
*File0utpdtStream寫入字節(jié)數(shù)組
*/
public static void method_2() throws IOException{
    //創(chuàng)建流對象,構(gòu)造方法綁定數(shù)據(jù)目的
    File0utputStream fos = new File0utputStream("d:/1. txt");
    //創(chuàng)建字節(jié)數(shù)組
    byte[] bytes=" abcdefg".getBytes();
    //字節(jié)流,寫入字節(jié)數(shù)組
    fos . write(bytes);
    //釋放資源
    fos.close();
}
public static void method_3() throws IOException{
    //創(chuàng)建流對象,構(gòu)造方法綁定數(shù)據(jù)目的
    File0utputStream fos = new File0utputStream("d:/1. txt");
    //創(chuàng)建字節(jié)數(shù)組
    byte[] bytes=" abcdefg".getBytes();
    //字節(jié)流,寫入字節(jié)數(shù)組的一部分
    //開始索引梦碗,寫入個數(shù)
    fos . write(bytes,3,2);
    //釋放資源
    fos.close();
}

文件的追加寫入和換行

Fileoutputstream(String name,boolean append)第二個參數(shù)傳遞是true,追加寫入
換行寫禽绪,需要使用換行符\r\n

public static void main(String[] args) throws IOException{
    method_4(); 
    method_5();
}
/*
*File0utputStream追加寫入,文件的續(xù)寫
*/
public static void method_4() throws IOException {
    FileOutputStream fos = new FileOutputStream("d:/a. txt" , true);
    fos . write(122);
    fos. close();
}
/*
*File0utputStream追加寫入,換行寫
*上一行末尾,下一行開頭也可以
*\r\n
*/
public static void method_5() throws IOException {
    FileOutputStream fos = new FileOutputStream("d:/a. txt");
    fos . write(" abc\r\n" . getBytes());
    fos . write(" xyz" . getBytes());
    fos.close();
}
/*
*I0流對象的異常處理:標(biāo)準(zhǔn)寫法
*資源釋放洪规,寫在finally 無論文件是否寫入成功印屁,資源必須釋放
*try外定義變量,try內(nèi)創(chuàng)建對象(提升變量的作用域)
*/
public static void main(String[] args) {
    FileOutputStream fos = nu11 ;
    //File0utputStream fos1 = null;
    try {
        fos = new File0utputStream("a. txt");
        //fos1 = new FileOutputStream("a1 . txt");
        fos . write(97);
    }catch( IOException ex) {
        ex. printStackTrace( );
    }finally{
        if(fos!=null)
        try {
                fos.close();
        }catch( IOException ex) {
            ex. printStackTrace();
        }
        /*
        * try { fos1. close(); }catch(IOException ex) { ex. printStackTrace(); 
        */
    }
    name();
}
public static void name() {
    try (File0utputStream fos = new File0utputStream( "b:/a.txt") ;
    File0utputStream fos2 = new File0utputStream(""){
    fos . write(97);
    }catch( IOException ex) {
    ex. printStackTrace( );
    }
}

字節(jié)輸入流

可以操作任意類型數(shù)據(jù)斩例,從其他的設(shè)備中,將數(shù)據(jù)讀取到ava程序
InputStream類的方法:都是讀取數(shù)據(jù)的方法read

int read()讀取單個字節(jié)雄人,返回讀取到的字節(jié),當(dāng)讀取到流的末尾念赶,返回-1
int read(byte[] b)讀取字節(jié)础钠,存儲到數(shù)組,讀取到流的末尾返回-1
close()關(guān)閉此流晶乔,釋放資源

InputStream類的子類

子類FileInputStream:

構(gòu)造方法
珍坊。FileInputStream(String name)傳遞字符串的文件名(數(shù)據(jù)源)
牺勾。FileInputStream(File file)傳遞File類型的文件

/*
*字節(jié)輸入流正罢,F(xiàn)ileInputStream讀取文件
*讀取單個字節(jié)方法read()
*/
public static void main(String[] args )throws IOException{
    //創(chuàng)建字節(jié)輸入流對象,構(gòu)造方法中,綁定數(shù)據(jù)源文件
    FileInputStream fis = new FileInputStream("a.txt");
    //讀取單個字節(jié)方法read()
    int i = fis.read();
    fis. close();
}
public static void main(String[] args )throws IOException{
    //創(chuàng)建字 節(jié)輸入流對象,構(gòu)造方法中,綁定數(shù)據(jù)源文件
    FileInputStream fis = new FileInputStream("a. txt" );
    //讀取單個字節(jié)方法read()
    //read()讀取結(jié)束,返回-1
    int i = 0; //接收read()方法的返 回值
    while( (i = fis.read())!=-1 ) {
        System.out.print((char)i)
    }
    fis. close();
}
/*
*字節(jié)輸入流随夸,F(xiàn)ileInputStream讀取文件
*讀取字節(jié)數(shù)組方法read(byte[] b)
*/
public static void main(String[] args) throws IOException{
    //創(chuàng)建字節(jié)輸入流對象,綁定數(shù)據(jù)源
    FileInputStream fis = new FileInputStream("a.txt" );
    //定義字節(jié)數(shù)組
    byte[] bytes = new byte[2];
    int i = fis.read(bytes);
    System. out. println(i);
    System. out . println(new String(bytes)) ;
    fis.close();
}
public static void main(String[] args) throws IOException{
    //創(chuàng)建字節(jié)輸入流對象,綁定數(shù)據(jù)源
    FileInputStream fis = new FileInputStream("a. txt");
    //定義字節(jié)數(shù)組,長度推薦寫1024整數(shù)倍1KB
    byte[] bytes = new byte[1024] ;
    int i =0; //接收read()方法返回值
    while ( (i = fis. read(bytes)) != -1 ) {
        /*
        * String類構(gòu)造方法,傳遞字節(jié)數(shù)組,轉(zhuǎn)成字符串,查詢編碼表
        *構(gòu)造方法,還可以傳遞參數(shù)new String(byte[] b,開始索引甲雅,轉(zhuǎn)幾個)
        */
        System. out . print(new String(bytes ,0,i));
    }
    fis. close();
}

字節(jié)輸入流讀取中文問題

字節(jié)輸入流,讀取漢字(讀不了)

/*
*字節(jié)輸入流,讀取漢字(讀不了)
*/
public static void main(String[] args) throws IOException{
    FileInputStream fis = new FileInputStream("b. txt");
    byte[] bytes = new byte[1024];
    int i=0;
    while( (i = fis.read(bytes)) !=-1) {
    System. out . print(new String(bytes,0,i));
    }
    fis. close();
}

字節(jié)流:文件賦值copy

數(shù)據(jù)源: d:/springboot_initializr.jar
數(shù)據(jù)目的: e: /springboot_initialzr.jar

讀取一個字節(jié)艇潭,寫入一個字節(jié)
讀取一個自己數(shù)組,寫入一個字節(jié)數(shù)組

pub1t.c static void main(String[] args) {
    copy_1();
    copy_2();
}
/*
*復(fù)制文件:讀寫單個字節(jié)
*/
public static void copy_1() throws IOException{
    //字節(jié)輸入流,綁定數(shù)據(jù)源
    FileInputStream fis = new FileInputStream( " d:/springboot_initializr . jar");
    //字節(jié)輸出流,綁定數(shù)據(jù)目的
    File0utputStream fos = new File0utputStream( " e:/springboot_initializr.jar");
    //fis讀取一個字節(jié)裆泳,fos寫入一個字節(jié)
    int i =0;
    while( (i = fis.read()) !=-1) {
        fos . write(i);
    }
    fos. close();
    fis.close() ;
}
/*
*復(fù)制文件:讀寫字節(jié)數(shù)組
*提升效率.
*/
public static void copy_2() throws IOException{
    //字節(jié)輸入流,綁定數(shù)據(jù)源
    FileInputStream fis = new FileInputStream( " d:/springboot_initializr . jar");
    //字節(jié)輸出流,綁定數(shù)據(jù)目的
    File0utputStream fos = new File0utputStream( " e:/springboot_initializr.jar");
    //fis讀取一個字節(jié)數(shù)組叹洲,fos寫入一個字節(jié)數(shù)組
    byte[] bytes = new byte [1024];
    int i =0;
    while( (i = fis.read(bytes)) !=-1) {
        fos . write(bytes,0,i);
    }
    fos. close();
    fis.close() ;
}

最后

感謝你看到這里,看完有什么的不懂的可以在評論區(qū)問我工禾,覺得文章對你有幫助的話記得給我點個贊运提,每天都會分享java相關(guān)技術(shù)文章或行業(yè)資訊,歡迎大家關(guān)注和轉(zhuǎn)發(fā)文章闻葵!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末民泵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子槽畔,更是在濱河造成了極大的恐慌栈妆,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厢钧,死亡現(xiàn)場離奇詭異鳞尔,居然都是意外死亡,警方通過查閱死者的電腦和手機早直,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門寥假,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人莽鸿,你說我怎么就攤上這事昧旨。” “怎么了祥得?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵兔沃,是天一觀的道長。 經(jīng)常有香客問我级及,道長乒疏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任饮焦,我火速辦了婚禮怕吴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘县踢。我一直安慰自己转绷,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布硼啤。 她就那樣靜靜地躺著议经,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上煞肾,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天咧织,我揣著相機與錄音,去河邊找鬼籍救。 笑死习绢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝙昙。 我是一名探鬼主播闪萄,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奇颠!你這毒婦竟也來了桃煎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤大刊,失蹤者是張志新(化名)和其女友劉穎为迈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缺菌,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡葫辐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了伴郁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耿战。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖焊傅,靈堂內(nèi)的尸體忽然破棺而出剂陡,到底是詐尸還是另有隱情,我是刑警寧澤狐胎,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布鸭栖,位于F島的核電站,受9級特大地震影響握巢,放射性物質(zhì)發(fā)生泄漏晕鹊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一暴浦、第九天 我趴在偏房一處隱蔽的房頂上張望溅话。 院中可真熱鬧,春花似錦歌焦、人聲如沸飞几。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屑墨。三九已至窟社,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绪钥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工关炼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留程腹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓儒拂,卻偏偏與公主長得像寸潦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子社痛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355