美文网首页java基础
Java IO(五) OtherStream

Java IO(五) OtherStream

作者: Marlon666 | 来源:发表于2017-11-29 10:50 被阅读2次

DataOutputStream和DataInputStream

DataOutputStream

数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。

image.png

''' try {
DataOutputStream out = new DataOutputStream(new FileOutputStream(fileName));
out.writeInt(1);
out.writeDouble(11.20);
out.writeUTF("test");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
'''

DataInputStream

数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
DataInputStream 对于多线程访问不一定是安全的。 线程安全是可选的,它由此类方法的使用者负责。


image.png

实例:

'''

 try {
        DataInputStream in = new DataInputStream(new FileInputStream(fileName));
        System.out.println(in.readInt() + "-" + in.readDouble() + "-" + in.readUTF());
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

'''

使用实例

'''

/**
 * 操作数据流
 *inputname 输入文件路径,outname 输出文件路径
 */
public static void operationData(String inputname, String outname) {
    DataInputStream d = null;
    try {
        d = new DataInputStream(new FileInputStream(inputname));
        DataOutputStream out = new DataOutputStream(new FileOutputStream(outname));
        String count;
        while ((count = d.readLine()) != null) {
            String u = count.toUpperCase();
            System.out.println(u);
            out.writeBytes(u + "  ,");
        }
        d.close();
        out.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

'''

ByteArrayInputStream和ByteArrayOutputStream

ByteArrayInputStream

ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节。
关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。

image.png
ByteArrayOutputStream

此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。
关闭 ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。

image.png
实例

'''

/**
 * ByteArray 输入流和输出流的使用
 */
public static void startByteArray() throws IOException {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream(12);
    while (outputStream.size() != 12) {
        try {
            outputStream.write(System.in.read());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    byte b[] = outputStream.toByteArray();
    System.out.println("print the content + 打印内容");
    for (int x = 0; x < b.length; x++) {
        System.out.print((char) b[x] + "  ");
    }
    System.out.println("    ");
    int c;

    ByteArrayInputStream input = new ByteArrayInputStream(b);
    System.out.println("Converting characters to Upper case ");
    for (int y = 0; y < 1; y++) {
        while ((c = input.read()) != -1) {
            System.out.println(Character.toUpperCase((char) c));
        }
        input.reset();
    }
    input.close();
}

'''

相关文章

网友评论

    本文标题:Java IO(五) OtherStream

    本文链接:https://www.haomeiwen.com/subject/xwyovxtx.html