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

方式一

/**

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

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

*/

/* 貌似是说网络环境中比较复杂,每次传过来的字符是定长的,用这种方式?*/
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吧

// 每次读一个是不是效率有点低了?
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()

{

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类是从字节流到字符流的桥梁/

/* 按行读对于要处理的格式化数据是一种读取的好方式 */
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中读取文件转换为字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java读取文件的简单实现方法

    本文实例讲述了Java读取文件的简单实现方法,非常实用.分享给大家供大家参考之用.具体方法如下: 这是一个简单的读取文件的代码,并试着读取一个log文件,再输出. 主要代码如下: import java.io.*; public class FileToString { public static String readFile(String fileName) { String output = ""; File file = new File(fileName); if(file.

  • Java IO读取文件的实例详解

    Java中文件流的两个主要方式就是字符流和字节流,如下图: 具体的使用方法可以参考官方文档,这里主要介绍四种常见的文件读取方式 1.通过字节来读取文件(常用于二进制文件:图片.声音.视频等) 2.通过字符来读取文件(常用于文本的读取) 3.通过行来读取文件(常用于面向行的格式化文本读取) 4.随机读取文件(基于字节来读取) 下面是对于这四种读取方式的代码,如下: package com.ds.io; //1.按字节读取文件内容 //2.按字符读取文件内容 //3.按行读取文件内容 //4.随机读

  • java实现分段读取文件并通过HTTP上传的方法

    本文实例讲述了java实现分段读取文件并通过HTTP上传的方法.分享给大家供大家参考.具体如下: 1.首先将文件分段,用RandomAccessFile 2.分段后将分出的内容上传到http URL url = new URL(actionUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); /** 允许Input.Output,不使用Cache */ con.setDoInput(true); con.s

  • JAVA读取文件夹大小的几种方法实例

    (一)单线程递归方式 复制代码 代码如下: package com.taobao.test; import java.io.File; public class TotalFileSizeSequential { public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"; // 递归方式 计算文件的大小    private long getTotalSizeO

  • java通过url读取文件内容示例

    复制代码 代码如下: using System;  using System.Collections;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Web;  using System.Web.SessionState;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Web.

  • java按指定编码写入和读取文件内容的类分享

    可以指定编码如:utf-8来写入和读取文件.如果文件编码未知,可以通过该方法先得到文件的编码后再指定正确的编码来读取,否则会出现文件乱码问题. 如何识别文件编码请参考:java自动根据文件内容的编码来读取避免乱码 复制代码 代码如下: package com.zuidaima.util; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputS

  • java读取文件显示进度条的实现方法

    实现这个功能比较简单,用到的类有两个:ProgressMonitorInputStream(主要是整个类) 和 ProgressMonitor ,它们在javax.swing中大体思路,你要首先知道整个文件的大小,和当前已经读取文件的大小,获得整个文件大小的方法 复制代码 代码如下: ProgressMonitorInputStream monitor;/*** @param 表示此进度条要依附在哪个组件上* @param 显示在此进度条上的消息* @param 需要监控的输入流*/monito

  • java如何读取超大文件

    Java NIO读取大文件已经不是什么新鲜事了,但根据网上示例写出的代码来处理具体的业务总会出现一些奇怪的Bug. 针对这种情况,我总结了一些容易出现Bug的经验 1.编码格式 由于是使用NIO读文件通道的方式,拿到的内容都是byte[],在生成String对象时一定要设置与读取文件相同的编码,而不是项目编码. 2.换行符 一般在业务中,多数情况都是读取文本文件,在解析byte[]时发现有换行符时则认为该行已经结束. 在我们写Java程序时,大多数都认为\r\n为一个文本的一行结束,但这个换行符

  • Java实现读取文件夹下(包括子目录)所有文件的文件名

    在编程的过程中,经常会用到对文件的读写操作等.比如,找出某一个文件夹下的所有文件名等. 下面的程序给出了,获取某一给定文件夹下所有文件的绝对路径的程序.可以作为某一个模块,在需要的时候直接使用. package src; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStrea

  • JAVA中读取文件(二进制,字符)内容的几种方法总结

    JAVA中读取文件内容的方法有很多,比如按字节读取文件内容,按字符读取文件内容,按行读取文件内容,随机读取文件内容等方法,本文就以上方法的具体实现给出代码,需要的可以直接复制使用 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileByBytes(String fileName) { File file = new File(fileName); In

随机推荐