Java で文字列と入力ストリームを変換する方法

WBOY
リリース: 2023-05-27 16:38:40
転載
1737 人が閲覧しました

文字列と入力ストリームの相互変換

ネットワークリソースを読み込む際、文字列と入力ストリームの相互変換がよく使われるので、いくつか方法を見つけたので記録しておきます。

文字列を入力ストリームに変換します。コードは次のとおりです。

public static InputStream getStringStream(String sInputString){ 
  if (sInputString != null && !sInputString.trim().equals("")){ 
      try{ 
          ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(sInputString.getBytes()); 
          return tInputStringStream; 
      }catch (Exception ex){ 
          ex.printStackTrace(); 
      } 
  } 
  return null; 
}
ログイン後にコピー

入力ストリームを文字列に変換します。コードは次のとおりです。

public static String getStreamString(InputStream tInputStream){ 
  if (tInputStream != null){ 
       try{ 
            BufferedReader tBufferedReader = new BufferedReader(new InputStreamReader(tInputStream)); 
            StringBuffer tStringBuffer = new StringBuffer(); 
            String sTempOneLine = new String(""); 
            while ((sTempOneLine = tBufferedReader.readLine()) != null){ 
                tStringBuffer.append(sTempOneLine); 
            } 
           return tStringBuffer.toString(); 
      }catch (Exception ex){ 
           ex.printStackTrace(); 
      } 
  } 
  return null; 
}
ログイン後にコピー

または次のメソッドのコードは次のとおりです。 :

public class StreamTool {
    /**
     * 把输入流的内容转化成字符串
     * @param is
     * @return
     */
    public static String readInputStream(InputStream is){
        try {
            ByteArrayOutputStream baos=new ByteArrayOutputStream();
            int length=0;
            byte[] buffer=new byte[1024];
            while((length=is.read(buffer))!=-1){
                baos.write(buffer, 0, length);
            }
            is.close();
            baos.close();
            //或者用这种方法
            //byte[] result=baos.toByteArray();
            //return new String(result);
            return baos.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return "获取失败";
        }
    }
}
ログイン後にコピー

文字入出力ストリーム

文字入力ストリーム

java.io.Reader 抽象化は、すべての文字入力の親クラスです。ファイルの内容を読み取るために使用されるストリーム

文字入力ストリーム構造:

Java で文字列と入力ストリームを変換する方法

読み取りを容易にするために、Java は便利なクラスを提供します。キャラクターファイルを読み込むためのものです。

FileReader クラス

構築メソッド:

  • FileReader(ファイル ファイル); データを読み取るファイルを指定して、新しい FileReader を作成します。

  • FileReader(String fileName); データを読み取るファイルの名前を指定して、新しい FileReader を作成します。

#一般的に使用される読み取り方法:

##メソッド名説明int read()1 文字を読み取り、すべての文字が最後まで到達した場合は -1 を返しますint read(char[] cbuf)読み込んだ cbuf.length 文字を char 配列に読み込みますint read(char[] cbuf, int off , int len)この文字入力ストリームから len 文字までのオフセットを char 配列に読み取りますvoid replace()ストリームをリセット#boolean ready()##void close() 文字入力ストリームを閉じ、すべてのシステム リソースを解放します。long Skip(long n)n 文字の読み取りをスキップし、スキップされた文字数を返しますvoid mark(int readLimit)この入力ストリームにマークを付けます。リセット メソッドを使用すると、この位置に戻り、この位置から読み取りを開始します。文字を入力してください #1. 1 回の読み取り。ファイルが大きすぎる場合は推奨されません。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class dome2{
	public static void main(String[] args){
	  File file=new File("D:/../...txt");   //创建file对象
	  FileReader fr=null;
	  
	  try {
		fr=new FileReader(file);
		int c;  
		while((c=fr.read())!=-1) { 
			System.out.print((char)c);  //强制转换成字符
		}
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		if(fr!=null) {
			try {
				fr.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
   }
}
ログイン後にコピー
ストリームを読み取る準備ができているかどうかを判断します
2. 複数の文字を読み込んで出力します。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class dome2{
	public static void main(String[] args){
	  File file=new File("D:/../...txt");   
	  FileReader fr=null;
	  
	  try {
		fr=new FileReader(file);
		char[] c=new char[100];
		int length;
		while((length=fr.read(c))!=-1) {
			System.out.println(new String(c,0,length));  
		}
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		if(fr!=null) {
			try {
				fr.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
   }
}
ログイン後にコピー

文字出力ストリーム

java.io.Writer 抽象クラスは、すべての文字出力ストリームの親クラスであり、データをファイルに書き込むために使用されます。

文字出力ストリーム構造:

Java は、文字を書くための便利なクラスを提供します。 Java で文字列と入力ストリームを変換する方法

FileWriterクラス

構築メソッド:

    FileWriter(ファイルファイル)
  • および

    FileWriter(String fileName); 指定されたファイル オブジェクトまたは指定されたファイル パス名を使用して FileWriter オブジェクトを構築します。

  • FileWriter(File file, boolean append)
  • および

    FileWriter(String fileName, boolean append); 指定されたファイル オブジェクトまたはファイルを通じてpathname は FileWriter オブジェクトを構築し、それが追加されるか上書きされるかどうかを示します。

    #一般的な読み取り方法

メソッド名説明#void write(char[] cbuf)cbuf で指定されたすべての文字配列を文字出力ストリームに書き込みます# #void write(int c)文字出力ストリームに文字を書き込みますvoid write(char[] cbuf,int off,int len )cbuf 配列内の文字をオフセット off から長さ len 文字までこの出力ストリームに書き込みます。 void write(String str )文字入力ストリームに文字列を書き込みますvoid write(String str, int off, int len)オフセット off、長さ len 文字列からの str 文字列をこの出力ストリームに書き込みます。 Abstract voidlush()現在の出力ストリームを更新し、すべての文字データを強制的に書き込みますabstract void close ()この出力ストリームを閉じる
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class dome2{
	public static void main(String[] args){
	  File file=new File("D:/../...txt");   //创建file对象
       FileWriter  fw=null;
       
       try {
		fw=new FileWriter(file);
		char c='你';
		fw.write((int)c);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		if(fw!=null) {
			try {
				fw.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}       
   }
}
ログイン後にコピー
2.writer( String str); 文字列
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class dome2{
	public static void main(String[] args){
	  File file=new File("D:/../...txt");   //创建file对象
       FileWriter  fw=null;
       
       try {
		fw=new FileWriter(file);
		String str="你好,java";
		fw.write(str);  //写入一个字符串,等价于write(str,0,str.length);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		if(fw!=null) {
			try {
				fw.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}       
   }
}
ログイン後にコピー
を書き込みます

以上がJava で文字列と入力ストリームを変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!
1.writer(int c);文字を書き込む