InputStreamReader FileInputStream配合读UTF8文件时,为什么最前面总有个?号 InputStreamReader FileInputStream配合读UTF8文件时,为什么最前面总有个?号后面的中文都是对的但最前面,总有个?号 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以试试用DataInputStream 类里的 readUTF() 方法去读取 UTF8文件 这样试试BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:/web.xml"),"utf-8"))然后用br.readLine()方法 编码问题吧试试ls的,换换GBK或者GB2312 44.。。 LZ 的文件 用 工具转成 UTF8 编码格式文件了?还是只是用 readUTF() 来读取任意文件? package com.csdn;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/** * @author xiaotang E-mail: [email protected] * @version1.00 创建时间:Mar 31, 2009 7:45:45 PM 类说明: */public class DataStreamTest { /** * 将数据写入文件 */ public static void write() { FileOutputStream fs; try { fs = new FileOutputStream("cc.txt"); BufferedOutputStream bos = new BufferedOutputStream(fs); DataOutputStream dos = new DataOutputStream(bos); dos.writeUTF("我是中国人,"); dos.writeUTF("我爱中国!!"); dos.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 读取文件数据 */ public static String reade() { FileInputStream is; String s = ""; try { is = new FileInputStream("cc.txt"); BufferedInputStream bis = new BufferedInputStream(is); DataInputStream dis = new DataInputStream(bis); s = dis.readUTF(); s+=dis.readUTF(); dis.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return s; } public static void main(String[] args) { // TODO Auto-generated method stub DataStreamTest.write(); String s = DataStreamTest.reade(); System.out.println(s); }} 我用系统的记事本打开的,另存为utf-8格式,然后读出的字符第一个就是?号,其它是正常的。 用FileInputStream来读的话,它是按字节流来读的,而UTF8编码头是EF BB BF。 我常用的方法是writeutf()方法,应该是编码问题 Java新手向各位求助 对话框的问题 急急急急急!!!求解 Linux下 java做到 word 转html java如何打开文本文件 如何把一个JPanel显示到java.awt.Canvas的上面? object[]如何转换成int[] 解释一下程序的输出。。 如何使用在上一目录上的包? 我有一个类想给别人从另外的程序访问应怎么做?? 在一个Java开发的系统中如何处理数据权限?来者有分。。。。。。。。。。。。。。。。。 我该怎么来保存?大家帮帮忙 如何把一个整形数转化为字节输出 RCP 菜单问题
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:/web.xml"),"utf-8"))
然后用br.readLine()方法
试试ls的,换换GBK或者GB2312 44.。。
还是只是用 readUTF() 来读取任意文件?
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;/**
* @author xiaotang E-mail: [email protected]
* @version1.00 创建时间:Mar 31, 2009 7:45:45 PM 类说明:
*/public class DataStreamTest {
/**
* 将数据写入文件
*/
public static void write() {
FileOutputStream fs;
try {
fs = new FileOutputStream("cc.txt");
BufferedOutputStream bos = new BufferedOutputStream(fs); DataOutputStream dos = new DataOutputStream(bos);
dos.writeUTF("我是中国人,");
dos.writeUTF("我爱中国!!");
dos.close(); } catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 读取文件数据
*/
public static String reade() {
FileInputStream is;
String s = "";
try {
is = new FileInputStream("cc.txt");
BufferedInputStream bis = new BufferedInputStream(is); DataInputStream dis = new DataInputStream(bis);
s = dis.readUTF();
s+=dis.readUTF();
dis.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return s;
} public static void main(String[] args) {
// TODO Auto-generated method stub DataStreamTest.write();
String s = DataStreamTest.reade();
System.out.println(s); }}
writeutf()方法,
应该是编码问题