JavaI/O

目前所在的项目组,要读取系统运行的日志信息,涉及到log文件的读取和写入,可以实现文件的上传下载。在做这些的时候,就用到了Java I/O流。
FileInputstream : 处理文件类型,继承了Inputstream,
                     主要两个构造函数:
                                      1. public FileInputstream (String name); //文件路路径
                                      2. public FileInputstream (File file);        // 直接文件类型
    FileInputstream类的主要方法:
                      Read();
                      read(byte[] b);
                      read(byte[] b int off, int len)
                      available();
                      skip();   //从指定的位置开始        
     FileInputstream 类是以二进制输入/输出,I/O速度快且效率高,但是它的read()方法读到的是一个字节,不利于阅读。
按字节流文本内容读出:

     

File log = new File ( logPath);
FileInputStream fileInputStream = new FileInputStream(log);
bytes = new byte[1024];
if ((fileInputStream.read(bytes)) != -1) {
    jsonArray.add(new String(bytes));
}
FileInputStream 调用read方法可以按字节大小一次读取多少个字节。这里一次读取1024个字节。存储在bytes中,这个是byte类型,需要强转为String类型。这样可以得到文本内容。

按字符流文本内容读出:当中使用到了处理字符串的抽象类:InputStreamReader。

        InputStreamReader
                            作用: 是字节流通向字符流的桥梁,它将字节流转换为字符流,继承了Reafder。
    
InputStreamReader reader = new InputStreamReader(
        new FileInputStream(file),"utf-8");
BufferedReader bufferedReader = new BufferedReader(reader);
String line = bufferedReader.readLine();
     将文件转化为字符流读出,然后使用BufferedReader读出每行数据,读出的数据是按照utf-8编码,不会出现字符乱码。

代码中变量 line就是文本文件中的一行数据。将bufferedReader.readLine() !=null作为循环条件,可以将文本文件里的内容全都出来。

    outputStreamwriter : 字节流通向字符流的桥梁
                    作用:  字节输出流换成字符输出流,继承了writer。

OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
BufferedWriter writer = new BufferedWriter(write);
writer.write("我是一名Java工程师");

将”我是一名Java工程师“写入文本文件中。

warn:

    Filewriter : 不是Writer的子类,而是outputStreamWriter的子类。
    FileReader : 不是Reader的子类,而是InputStreamReader的子类。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值