激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java IO流相關(guān)知識(shí)代碼解析

Java IO流相關(guān)知識(shí)代碼解析

2021-03-06 13:40在成為巨擘的路上 Java教程

這篇文章主要介紹了Java IO流相關(guān)知識(shí)代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。

一、IO流的分類

字符流

Reader
InputStreamReader(節(jié)點(diǎn)流)
BufferedReader(處理流)
Writer
OutputStreamWriter(節(jié)點(diǎn)流)
BufferedWriter(處理流)
PrintWriter

字節(jié)流

InputStream
FileInputStream(節(jié)點(diǎn)流)
BufferedInputStream(處理流)
ObjectInputStream(處理流)
PrintStream
OutputStream
FileOutputStream(節(jié)點(diǎn)流)
BufferedOutputStream(處理流)
ObjectOutputStream(處理流)

斷點(diǎn)處理的流

RandomAccessfile

二、IO流的用法

1、轉(zhuǎn)換流的用法

?
1
2
3
4
FileInputStream in = new FileInputStream(newFile(""));    
 Readerreader = new InputStreamReader(in);//字節(jié)轉(zhuǎn)字符
 FileOutputStreamout = new FileOutputStream(newFile(""));
 Writer writer = new OutputStreamWriter(out);//字符轉(zhuǎn)字節(jié)

2、對(duì)象序列化,對(duì)象需要實(shí)現(xiàn)Serializable接口

?
1
2
3
4
5
6
7
8
9
FileOutputStreamfileOutputStream = new FileOutputStream("C:\\Users\\lx\\Desktop\\Record.txt");
ObjectOutputStreamobjectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(object);//向指定文件寫入對(duì)象object
objectOutputStream.close();
 
FileInputStreamfileInputStream = new FileInputStream("C:\\Users\\lx\\Desktop\\Record.txt");
ObjectInputStreamobjectInputStream = new ObjectInputStream(fileInputStream);
object = objectInputStream.readObject();//讀取得到對(duì)象object
fileInputStream . lose();

3、斷點(diǎn)的運(yùn)用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class Copy extends Thread{
    //可以利用多線程實(shí)現(xiàn)拷貝 
    longstart;
    longend;
    Filesorce;
    Filetargetdir;
    publicCopy() {
    }
    publicCopy(longstart,long end, File sorce, File targetdir) {
        //利用構(gòu)造方法傳遞需要拷貝的長度,拷貝開始位置,以及目標(biāo)文件和源文件
        super();
        this.start= start;
        this.end= end;
        this.sorce= sorce;
        this.targetdir= targetdir;
    }
    @Override
       publicvoid run(){
        try{
            RandomAccessFilesouceRaf = new RandomAccessFile(sorce,"r");
            RandomAccessFiletargetRaf = new RandomAccessFile(newFile(targetdir,sorce.getName()),"rw");
            souceRaf.seek(start);
            targetRaf.seek(start);
            intlen= 0;
            byte[]bs = new byte[1024];
            longseek;
            System.out.println(start+"---->"+end+this.getName());
            while((len= souceRaf.read(bs))!=-1){
                targetRaf.write(bs, 0, len);
                seek= souceRaf.getFilePointer();
                //獲取斷點(diǎn)位置
                if(seek== end){
                    break;
                }
            }
            targetRaf.close();
            souceRaf.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4、字節(jié)流的用法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Test_InputStream {
    //利用字節(jié)流獲取文本文件內(nèi)容,但是容易出現(xiàn)問題
    /* 
  //可能出現(xiàn)int長度越界
  public static void main(String[] args) throws IOException {
    InputStream inputStream = new FileInputStream(new File("C:\\Users\\lx\\Desktop\\test\\33.txt"));
    byte[] b = new byte[inputStream.available()]; 
    inputStream.read(b);
    String str = new String(b);
    System.out.println(str);
  }
*/
    //可能出現(xiàn)亂碼   
    public static void main(String[] args) throws IOException {
        File file = new File("C:\\Users\\lx\\Desktop\\test\\33.txt");
        InputStream inputStream = new FileInputStream(file);
        //統(tǒng)計(jì)每次讀取的實(shí)際長度
        int len = 0;
        //聲明每次讀取1024個(gè)字節(jié)
        byte[] b = new byte[2];
        StringBuffer sBuffer = new StringBuffer();
        while((len=inputStream.read(b))!=-1){
            sBuffer.append(new String(b,0,len));
        }
        System.out.println(sBuffer.toString());
    }
}
//利用字節(jié)流拷貝文件
public void copy(File sourceFile, File targetDir) {
    //
    FileInputStreamfileInputStream = null;
    FileOutputStreamfileOutputStream = null;
    fileInputStream= new FileInputStream(sourceFile);
    FiletargetFile = new File(targetDir,sourceFile.getName());
    fileOutputStream= new FileOutputStream(targetFile);
    byte[]b = new byte[1024];
    intlen = 0;
    while((len= fileInputStream.read(b)) != -1) {
        fileOutputStream.write(b, 0, len);
    }
}

5、緩存字符流的用法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
publicstatic void main(String[] args) throws IOException {
    //緩存字符流實(shí)現(xiàn)寫入文件
    InputStreamin = System.in;
    Readerreader = new InputStreamReader(in);
    BufferedReaderbr = new BufferedReader(reader);
    BufferedWriterbw = new BufferedWriter(new FileWriter(new File("src/1.txt")));
    Strings="";
    while((s=br.readLine())!=null) {
        bw.write(s);
        bw.newLine();
        bw.flush();
        //字符流千萬不要忘了flush!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    }
}

總結(jié)

以上就是本文關(guān)于Java IO流相關(guān)知識(shí)代碼解析的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/qq_24065713/article/details/76407833

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费观看黄色一级视频 | 秋霞影院一二三区 | 最新av在线免费观看 | 久久影院免费观看 | 日韩电影av在线 | 99国内精品视频 | 九九热色| 香蕉视频18 | 在线观看免费毛片视频 | av在线中文 | 内地av在线 | 午夜精品在线播放 | 欧美成人se01短视频在线看 | 91一级毛片 | 91精品中文字幕 | av成人免费 | 久久国产成人午夜av浪潮 | av视在线| 日韩视频不卡 | 成人羞羞网站入口 | 国产亚洲精品久久久久久久久久 | 黄色男女视频 | 亚洲综合无码一区二区 | 色婷婷久久一区二区 | 成人久久久精品乱码一区二区三区 | 色淫视频 | 久久综合婷婷香五月 | 97青青草视频 | 18欧美性xxxx极品hd | 免费看日产一区二区三区 | 国产免费观看一区二区三区 | 性爱视频免费 | 欧美激情精品久久久久久久久久 | 国产乱一区二区三区视频 | 99国产精品自拍 | 国产精品久久久网站 | 竹内纱里奈和大战黑人 | 久久嗨 | 久久久久免费精品国产小说色大师 | 欧美a级一区二区 | 欧美精品激情在线 |