「java文件流输出」java文件流输出中文乱码

博主:adminadmin 2022-11-21 23:25:07 55

本篇文章给大家谈谈java文件流输出,以及java文件流输出中文乱码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java里那个输入流和输出流怎么用

//java中使用文件输入流和文件输出流进行文件读写的用例!           

Java 

   package com.test.io; 

import java.io.File; 

import java.io.FileInputStream; 

import java.io.FileNotFoundException; 

import java.io.FileOutputStream; 

import java.io.IOException; 

import java.io.InputStream; 

import java.io.OutputStream; 

/** 

 *  

 * @author 亚当爱上java 

 * 用例内容:文件输入流和文件输入流结合用例,字节流方式 

* 时间:2010-06-20 

 * 注意事项:文件输入流和文件输出流都是相对与内存来说的,例如通过程序读取文件时往内存输入数据就是文件输入流 

*/ 

public class FileInputOrOutput { 

 public static void main(String[] args) { 

  // 文件或者路径名的抽象表现形式,意思就是说之后如果进行操作的话就是全部在这个抽象路径名所指向的文件或者文件加中 

  File file = new File("e:/test.txt"); 

  File file2 = new File("e:/test1.txt"); 

   

  // 文件字节数的个数 

  // System.out.println(file.length()); 

  try { 

   /*------------------------------------------读操作部分-----------------------------------------------*/ 

   //文件输入流对象 

   InputStream fis = new FileInputStream(file); 

   // 文件输入流对象所读取的字节数大小 

   // System.out.println(fis.available()); 

   /** 

    * 1.按照一个字节为单位进行读取数据,弊端是遇到中文就会把中文的汉字拆开从而出现乱码 

    */ 

   // //流对象读出的返回值是每次所读到的一个字符所对应的ascii码值 

   // int i = fis.read(); 

   //    

   // //如果已经读到文件尾则i==-1,此时终止循环 

   // while(i!=-1){ 

   // System.out.print((char)i); 

   // 保证每一次循环都继续往后读取一个字符,否则i的值不变会成为死循环 

   // i = fis.read(); 

   // } 

   /** 

    * 2.按照一个字节数组所指定的大小为单位进行读取,每次最多可以读取数组定义的大小的字节个数 

    */ 

   // 每次读取都以1K字节作为单位来进行 

   byte b[] = new byte[1024]; 

   // 流对象读出并返回的是每次读取字节的个数,最大每次读取自己数可以和数组b.length相同 

   // b中存储了每次所读取的所有数据 

   int i = fis.read(b); 

   String str = ""; 

   // 如果已经读到文件尾则i==-1,此时终止循环 

   while (i != -1) { 

    // 把每次读取的字节数组解码为字符串 

    // 参数1:要解码为字符的字节 

    // 参数2:要解码的首字符的索引 

    // 参数3:要解码的字节的个数,如果文件个数大于所设定的一次读取文件的大小时i的取值就是 

    // b.length,否则小于数组的字节大小时则为实际的读取出自己数的大小 

    str = str + new String(b, 0, i); 

    // 保证每一次都往文件的下一部分进行读取,否则i值没有变化会成为死循环 

    i = fis.read(b); 

   } 

   // System.out.print(str); 

   // 关闭输入流对象 

   fis.close(); 

   

   /*------------------------------------------写操作部分-----------------------------------------------*/ 

   //文件输出流对象 

   OutputStream fos = new FileOutputStream(file2); 

    

   //str是从file所指定的文件中读出的所有内容,将此内容写入另一个文件中 

   //将字符解码为字节数组 

   byte b2[] = str.getBytes(); 

    

   //将解码后的字节数组,通过文件输出流对象写入到缓冲区中 

   fos.write(b); 

   //强制将缓冲区中的内容输出到文件中 

   fos.flush(); 

   //关闭输出流对象 

   fos.close(); 

    

  } catch (FileNotFoundException e) { 

   // TODO Auto-generated catch block 

   e.printStackTrace(); 

  } catch (IOException e) { 

   // TODO Auto-generated catch block 

   e.printStackTrace(); 

  } 

 } 

}

java如何使用文件字节输出流类:FileOutputStream ?

    文件字节输出流关联指定文件路径的文件,数据通过文件字节输出流以字节为单位输出并保存到文件中。文件字节输出流继承自OutputStream类,并实现OutputStream类的各种方法。

文件字节输出流的构造方法语法如下:

语法1:以File对象为参数创建FileOutputStream实例

new FileOutputStream(File file)1

语法2:以文件对象的绝对路径为参数创建FIleOutputStream实例

new FileOutputStream(String filepath)

java中如何做文件字节输出流?

import java.io.File;

import java.io.FileOutputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

public class FileOutputStreamTest1

{

public static void main(String[] args)

{

try

{

FileOutputStream fos=new FileOutputStream("F:\\io\\def.txt");

String s="abcdef";

byte[] bs=s.getBytes();

for(int i=0;ibs.length;i++)

{

fos.write(bs[i]);

}

fos.close();

}

catch (FileNotFoundException e)

{

System.out.println("操作的文件不存在");

}

catch(IOException e)

{

            System.out.println("发生IO操作异常");

}

}

}

「java文件流输出」java文件流输出中文乱码

java以下代码中,我用文件输出流和内存输出流同样输出output对象,为什么结果不一样?

呃,时隔几年,不知道你解决问题没有。首先应该明白,System.out.println(OBJ)会自动调用OBJ.toString()方法。查阅官方文档表示,ByteArrayInputStream类中重写了toString( )方法,Converts the buffer's contents into a string decoding bytes using the platform's default character set.即 “使用平台的默认字符集将缓冲区的内容转换为字符串解码字节。

但是 FileOutputStream类中并未重写toString( ) 。使用的是从Object类中继承下来的。所以你能看到 obj@xxx 格式的输出。

java文件流输出的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java文件流输出中文乱码、java文件流输出的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。