gpt4 book ai didi

Java输入输出流实例详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java输入输出流实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了java输入输出流。分享给大家供大家参考,具体如下:

字节输出流,输出到文件中(写) 。

outputstream抽象类 。

选好文件 。

复制代码 代码如下:
file file = new file("e:" + file.separator + "myfile" + file.separator + "test" + file.separator + "123.txt");

  。

子类实例化,需要抛异常 。

稍后传输的数据覆盖原内容 。

?
1
outputstream output = new fileoutputstream(file);

稍后传输的数据追加在原数据之后 。

?
1
outputstream output = new fileoutputstream(file, true );

选好数据,转换为字节数组 。

?
1
2
string msg = "你好\r\n世界" ;
byte data[] = msg.getbytes();
  • windows系统txt文件换行用\r\n

输出到文件(向文件中写数据) 。

?
1
output.write(data);

写入部分数据 。

?
1
output.write(data, 3 , 8 );
  • 从字节数组data的脚标为3开始8个字节写入此输出流。

关闭输出流 。

?
1
output.close();

字节输入流,文件中数据读取到程序中(读) 。

inputstream抽象类 。

选好文件 。

?
1
file file = new file( "e:" + file.separator + "myfile" + file.separator + "test" + file.separator + "123.txt" );

子类实例化,需要抛异常 。

?
1
fileinputstream input = new fileinputstream(file);

读取数据,并将数据保存到指定字节数组中 。

?
1
2
byte data[] = new byte [ 100 ];
int len = input.read(data);
  • 字节数组的长度需要选的合适,如果从文件中读取的内容的的字节数超过了指定字节数组的长度,那么超过的部分将无法保存到指定的字节数组中,这样内容就会丢失,如果遇到正文这样一个字占多个字节的,也可能出现乱码。

三种读取数据方式 。

?
1
2
byte data[] = new byte [ 100 ];
int len = input.read(data);

从此输入流中将最多 data.length 个字节的数据读入data数组中。在某些输入可用之前,此方法将阻塞.

返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1.

?
1
2
byte data[] = new byte [ 100 ];
int len = input.read(data, 5 , 14 );

从此输入流中将最多14个字节的数据读入data数组中,读入位置为data数组后偏移5个位置,即读入的开始位置是数组脚标为5的位置 。

返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1.

?
1
2
3
4
5
6
7
byte data[] = new byte [ 100 ];
int i = 0 ;
int read = input.read();
while (read != - 1 ){
   data[i++] = ( byte )read;
   read = input.read();
}

从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞.

返回:下一个数据字节;如果已到达文件末尾,则返回 -1.

注意有参数的和无参数的read方法的返回值是不一样的,有参数的返回的是读取字节的个数,无参的返回的是字节的int值,如果要保存到字节数组,还需要强转为byte型.

将字节数组转换为字符串输出到控制台 。

?
1
2
string x = new string(data);
system.out.println(x);

关闭输入流 。

?
1
input.close();

字符输出流:writer 。

?
1
2
3
4
5
6
7
8
9
10
11
import java.io.file;
import java.io.filewriter;
import java.io.writer;
public class hello {
   public static void main(string[] args) throws exception{
    file file = new file( "e:" + file.separator + "myfile" + file.separator + "test" + file.separator + "123.txt" );
    writer writer = new filewriter(file);
    writer.write( "你好\r\nworld" );
    writer.close();
   }
}

write方法的参数直接写字符串即可.

必须要关闭字符输出流,不然数据只是保存在缓冲区中,并没有写入文件.

字符输入流:reader 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.io.file;
import java.io.filereader;
import java.io.reader;
public class hello {
   public static void main(string[] args) throws exception {
    file file = new file( "e:" + file.separator + "myfile" + file.separator + "test" + file.separator + "123.txt" );
    char data[] = new char [ 100 ];
    reader reader = new filereader(file);
    reader.read(data);
    string x = new string(data);
    system.out.println(x);
    reader.close();
   }
}

read方法是将读取的数据保存到字符数组中.

希望本文所述对大家java程序设计有所帮助.

原文链接:https://blog.csdn.net/shuair/article/details/81984299 。

最后此篇关于Java输入输出流实例详解的文章就讲到这里了,如果你想了解更多关于Java输入输出流实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com