码迷,mamicode.com
首页 > 其他好文 > 详细

【I/O】常见输入输出

时间:2017-01-24 20:08:09      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:缓冲区   void   bsp   color   随机   readline   换行符   字节   读写   

 

缓冲输入文件、输出文件

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Test {
    public static void main(String[] args) throws IOException{
        BufferedReader input = new BufferedReader(new FileReader("D:/test.txt"));
        PrintWriter output=new PrintWriter(new BufferedWriter(new FileWriter("D:/test_copy.txt")));
        String s;
        while((s=input.readLine())!=null){
            output.print(s);   //readLine()取出文件的一行内容时,是将换行符是删除了的。
        }
        input.close();
        output.close();  //缓冲区可能仍有内容,不要忘记正确的关闭它。
    }
}

 

从内存中读入(将一个string通过StringReader读入)

import java.io.IOException;
import java.io.StringReader;

public class Test {
    public static void main(String[] args) throws IOException{
        StringReader input = new StringReader("这是一个字符串"); 
        int c;
        while((c=input.read())!=-1){
            System.out.println((char)c);  //read()返回的一个int形式,必须类型转换为char才能正确打印。
        }
        input.close();
    }
}

 

格式化的内存输入,此时需要用到面向字节的I/O类(InputStream)

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException{
        DataInputStream input = new DataInputStream(new ByteArrayInputStream("This".getBytes()));
        while(input.available()!=0){    //判断是否还有剩余的字节。(由于是一个个字节读取,故所有字节都是合法的结果,因此返回值不能用来检测输入是否结束,我们只能使用available判断是否读取完毕。
            System.out.println((char)input.readByte());  //readBytes一次次读入一个字节。还有类似的readChar/readFloat/readDouble/readInt等
        }
    }
}

 

使用DataInputStream来存储和恢复数据

DataInputStream/DataOutputStream可以确保我们读取数据一致(无论平台有多么不同)。这一点是非常重要的。缺点就是我们必须知道流中数据项所在的确切位置。

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException{
        DataOutputStream output=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("test.txt")));
        output.writeDouble(3.1415926535);
        output.writeUTF("使用UTF编码");
        output.writeInt(123);
        output.close();
        
        DataInputStream input=new DataInputStream(new BufferedInputStream(new FileInputStream("test.txt")));
        System.out.println(input.readDouble());
        System.out.println(input.readUTF());
        System.out.println(input.readInt());
        input.close();
    }
}

 

读写随机访问文件

 

【I/O】常见输入输出

标签:缓冲区   void   bsp   color   随机   readline   换行符   字节   读写   

原文地址:http://www.cnblogs.com/zadomn0920/p/6347739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!