Java IO输入输出及乱码问题

版权声明:https://blog.csdn.net/weixin_40811410 https://blog.csdn.net/weixin_40811410/article/details/81950570
/** 
     * 以二进制读出文件内容 
     * @param file 
     * @return 
     * @throws IOException 
     */  
    private static byte[] readFileBytes(File file) throws IOException {  
        byte[] arrayOfByte = new byte[1024];  
        ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();  
        FileInputStream fis = new FileInputStream(file);  
        while (true) {  
            int i = fis.read(arrayOfByte);  
            if (i != -1) {  
                localByteArrayOutputStream.write(arrayOfByte, 0, i);  
            } else {  
                return localByteArrayOutputStream.toByteArray();  
            }  
        }  
    }

下面是我从两个不同的Java文件中得到的代码。 一个是”文件”与主类,另一个是”filewrite”。”

我可以实现字符串输入和输出。 但输出文件在开头有乱码,我不确定为什么。

[File.Java ]

package file;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class File
{
    public static void main(String[] args)
    {
        try(BufferedReader br =new BufferedReader(newFileReader("B:fileIn.txt")))
        {
            String stCurrent;
            while((stCurrent = br.readLine())!=null)
            {
                System.out.println(stCurrent);

            }
        }catch(IOException e)
        {
            e.printStackTrace();

        }
        FileWrite fW =newFileWrite(); 
        fW.serializeAddress("Boston","Canada");
    }
}
[FileWrite.Java ]

package file;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class FileWrite
{
    public void serializeAddress(String city,String country)
    {
        try
        {
            FileOutputStream fout =new FileOutputStream("B:address.txt");
            ObjectOutputStream obOut =new ObjectOutputStream(fout);  
            obOut.writeUTF(city); 
            obOut.writeUTF(country); 
            obOut.close();
            System.out.println("Output Done");
        }catch(Exception ex)
        { 
            ex.printStackTrace();
        }
    }
}

使用了obOut.writeUTF(country);”
那么久对应的使用obOut.writeUTF(city, counry) 中。

PrintStream ps =new PrintStream(newFileWriter("B:addressPS.txt")); 
ps.println(city); 
ps.println(country); 
ps.close();


YunSoul技术分享,扫码关注微信公众号

    ——只要你学会了之前所不会的东西,只要今天的你强过了昨天的你,那你就一直是在进阶的路上了。

猜你喜欢

转载自blog.csdn.net/weixin_40811410/article/details/81950570
今日推荐