日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

android java 中文乱码_android读写中文如何避免乱码详解

發布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android java 中文乱码_android读写中文如何避免乱码详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

android讀取文件中文出現亂碼的原因無非就是,讀取文件的字符格式與寫如文件的格式不一致。因此,避免中文亂碼,要在寫入文件的時候按照一定的格式寫入,讀取的時候按照一定的格式讀取。這樣對應就不會出現亂碼。對于其它的文本讀取,在不知道何種格式的時候,可以先讀取相應的文件信息,再進行相應的轉碼。

下面是一個避免中文讀寫出現亂碼的類。

RWFile.java

package com.rwfile.main;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import android.os.Environment;

public class RWFile {

/**

* 判斷sdcard是否存在

*

* @return

*/

public static boolean isSdcard() {

String status = Environment.getExternalStorageState();

if (status.equals(Environment.MEDIA_MOUNTED)) {

return true;

} else {

return false;

}

}

/**

* 讀取文件內容

*

* @param filePathAndName

* @return

*/

public static String readFile(String filePathAndName) {

String fileContent = null;

try {

File f = new File(filePathAndName);

if (f.isFile() && f.exists()) {

fileContent = "";

InputStreamReader read = new InputStreamReader(

new FileInputStream(f), "UTF-8");

BufferedReader reader = new BufferedReader(read);

String line;

while ((line = reader.readLine()) != null) {

fileContent += line;

}

read.close();

}

} catch (Exception e) {

e.printStackTrace();

return null;

}

return fileContent;

}

/**

* 寫入文件內容

*

* @param filePathAndName

* @param fileContent

*/

public static boolean writeFile(String filePathAndName, String fileContent) {

try {

File f = new File(filePathAndName);

if (!f.exists()) {

f.createNewFile();

}

// 覆蓋文件

OutputStreamWriter write = new OutputStreamWriter(

new FileOutputStream(f), "UTF-8");// 覆蓋文件

// 追加文件

// OutputStreamWriter write = new OutputStreamWriter(

// new FileOutputStream(f, true), "UTF-8"); // 追加文件

BufferedWriter writer = new BufferedWriter(write);

writer.write(fileContent);

writer.close();

} catch (Exception e) {

e.printStackTrace();

return false;

}

return true;

}

}

根據這個類寫的一個測試的Demo項目。

MainActivity.java

package com.rwfile.main;

import java.io.File;

import android.os.Bundle;

import android.os.Environment;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final EditText input = (EditText) findViewById(R.id.input);

final TextView content = (TextView) findViewById(R.id.content);

Button write = (Button) findViewById(R.id.write);

write.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

if (!RWFile.isSdcard()) {

Toast.makeText(MainActivity.this, "無法找到sdcard卡",

Toast.LENGTH_LONG).show();

} else {

String sdcard = Environment.getExternalStorageDirectory()

.toString() + File.separator;

System.out.println("write path:" + sdcard + "test.txt");

RWFile.writeFile(sdcard + "test.txt", input.getText()

.toString());

}

}

});

Button read = (Button) findViewById(R.id.read);

read.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

if (!RWFile.isSdcard()) {

Toast.makeText(MainActivity.this, "無法找到sdcard卡",

Toast.LENGTH_LONG).show();

} else {

String sdcard = Environment.getExternalStorageDirectory()

.toString() + File.separator;

System.out.println("read path:" + sdcard + "test.txt");

String str = RWFile.readFile(sdcard + "test.txt");

if (str == null)

Toast.makeText(MainActivity.this, "無法找到test.txt文件",

Toast.LENGTH_LONG).show();

else {

content.setText(str);

}

}

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

activy_main.xml

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/input" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="@string/chinese"

android:text="@string/chinese"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/write"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/read"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

注意:需要加入文件讀寫權限

避免讀寫中文亂碼

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

總結

以上是生活随笔為你收集整理的android java 中文乱码_android读写中文如何避免乱码详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。