服务器之家

服务器之家 > 正文

全面了解java byte数组与文件读写

时间:2020-06-06 14:06     来源/作者:jingxian

全面了解java byte数组与文件读写

?
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class FileHelper {
<span style="white-space:pre">  </span>//第一种获取文件内容方式
  public byte[] getContent(String filePath) throws IOException {
    File file = new File(filePath);
 
    long fileSize = file.length();
    if (fileSize > Integer.MAX_VALUE) {
      System.out.println("file too big...");
      return null;
    }
 
    FileInputStream fi = new FileInputStream(file);
 
    byte[] buffer = new byte[(int) fileSize];
 
    int offset = 0;
 
    int numRead = 0;
 
    while (offset < buffer.length
 
    && (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) {
 
      offset += numRead;
 
    }
 
    // 确保所有数据均被读取
 
    if (offset != buffer.length) {
 
      throw new IOException("Could not completely read file "
          + file.getName());
 
    }
 
    fi.close();
 
    return buffer;
  }
  
  //第二种获取文件内容方式
  public byte[] getContent2(String filePath) throws IOException
  {
    FileInputStream in=new FileInputStream(filePath);
    
    ByteArrayOutputStream out=new ByteArrayOutputStream(1024);
    
    System.out.println("bytes available:"+in.available());
    
    byte[] temp=new byte[1024];
    
    int size=0;
    
    while((size=in.read(temp))!=-1)
    {
      out.write(temp,0,size);
    }
    
    in.close();
    
    byte[] bytes=out.toByteArray();
    System.out.println("bytes size got is:"+bytes.length);
    
    return bytes;
  }
    //将byte数组写入文件
  public void createFile(String path, byte[] content) throws IOException {
 
    FileOutputStream fos = new FileOutputStream(path);
 
    fos.write(content);
    fos.close();
  }
 
}

以上这篇全面了解java byte数组与文件读写就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

相关文章

热门资讯

歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
返回顶部