服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java中读取文件转换为字符串的方法

Java中读取文件转换为字符串的方法

2021-05-16 15:53tmgg Java教程

今天小编就为大家分享一篇Java中读取文件转换为字符串的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

方式一

/**

以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

当然也是可以读字符串的。

*/

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* 貌似是说网络环境中比较复杂,每次传过来的字符是定长的,用这种方式?*/
public string readstring1()
{
 try
 {
  //fileinputstream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 filereader。
  fileinputstream instream=this.openfileinput(file_name);
  bytearrayoutputstream bos = new bytearrayoutputstream();
  byte[] buffer=new byte[1024];
  int length=-1;
  while( (length = instream.read(buffer) != -1)
  {
   bos.write(buffer,0,length);
   // .write方法 sdk 的解释是 writes count bytes from the byte array buffer starting at offset index to this stream.
   // 当流关闭以后内容依然存在
  }
  bos.close();
  instream.close();
  return bos.tostring();
  // 为什么不一次性把buffer得大小取出来呢?为什么还要写入到bos中呢? return new(buffer,"utf-8") 不更好么?
  // return new string(bos.tobytearray(),"utf-8"); 
 }
}

方式二

// 有人说了 filereader 读字符串更好,那么就用filereader吧

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 每次读一个是不是效率有点低了?
private static string readstring2()
{
 stringbuffer str=new stringbuffer("");
 file file=new file(file_in);
 try {
  filereader fr=new filereader(file);
  int ch = 0;
  while((ch = fr.read())!=-1 )
  {
   system.out.print((char)ch+" ");
  }
  fr.close();
 } catch (ioexception e) {
  // todo auto-generated catch block
  e.printstacktrace();
  system.out.println("file reader出错");
 }
 return str.tostring();
}

方式三

/按字节读取字符串/

/* 个人感觉最好的方式,(一次读完)读字节就读字节吧,读完转码一次不就好了*/

private static string readstring3()

{

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string str="";
file file=new file(file_in);
try {
 fileinputstream in=new fileinputstream(file);
 // size 为字串的长度 ,这里一次性读完
 int size=in.available();
 byte[] buffer=new byte[size];
 in.read(buffer);
 in.close();
 str=new string(buffer,"gb2312");
} catch (ioexception e) {
 // todo auto-generated catch block
 return null;
 e.printstacktrace();
}
return str;

}

方式四

/inputstreamreader+bufferedreader读取字符串 , inputstreamreader类是从字节流到字符流的桥梁/

?
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
/* 按行读对于要处理的格式化数据是一种读取的好方式 */
private static string readstring4()
{
 int len=0;
 stringbuffer str=new stringbuffer("");
 file file=new file(file_in);
 try {
  fileinputstream is=new fileinputstream(file);
  inputstreamreader isr= new inputstreamreader(is);
  bufferedreader in= new bufferedreader(isr);
  string line=null;
  while( (line=in.readline())!=null )
  {
   if(len != 0) // 处理换行符的问题
   {
    str.append("\r\n"+line);
   }
   else
   {
    str.append(line);
   }
   len++;
  }
  in.close();
  is.close();
 } catch (ioexception e) {
  // todo auto-generated catch block
  e.printstacktrace();
 }
 return str.tostring();
}

路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。

以上这篇java中读取文件转换为字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/stimgo/article/details/52856570

延伸 · 阅读

精彩推荐