`
vera_sq
  • 浏览: 119203 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

java.io读取文件疑惑

阅读更多

下面是需要用流去读的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<page pageId ="deskTop" pageTitle="我的桌面" pageVersion="1.0" cache="Check">
  <body bgImage="$bgImage$">
    <gridTable nameId="gid1" location="" size="" rows="3" cols="3">
      <gridItem text="移动产品" url="$server_path$/Api.ashx?function=getGrpProduct&amp;id_u=$id_u$" img="local://resources/desktop/2.png"/>
      <gridItem text="集团产品" url="$server_path$/Api.ashx?function=getProduct&amp;id_u=$id_u$" img="local://resources/desktop/3.png"/>
      <gridItem text="知识库" url="$server_path$/Api.ashx?function=getKnowledgeTypes&amp;id_u=$id_u$" img="local://resources/desktop/0.png"/>
      <gridItem text="信息采集" url="$server_path$/Api.ashx?function=getCollType&amp;id_u=$id_u$" img="local://resources/desktop/1.png"/>
      <gridItem text="在线交流" url="$server_path$/Api.ashx?function=getMyQuestionList&amp;id_u=$id_u$&amp;id_acc=$id_acc$" img="local://resources/desktop/4.png"/>
      <gridItem text="通讯录" url="$server_path$/Api.ashx?function=getAddrTypes&amp;id_u=$id_u$" img="local://resources/desktop/5.png"/>
      <gridItem text="广播信息" url="$server_path$/Api.ashx?function=getNewsList&amp;id_u=$id_u$" img="local://resources/desktop/6.png"/>
      <gridItem text="辅助软件" url="$server_path$/Api.ashx?function=getHelpTool" img="local://resources/desktop/7.png"/>
      <gridItem text="退出系统" url="cmd://exit_app" img="local://resources/desktop/8.png"/>
    </gridTable>
  </body>
</page>

 

首先我是用fileInputStream去读的,代码如下:

public static String readXml(String path){
StringBuffer sb = new StringBuffer();
try {
InputStream is = new FileInputStream(path);
byte[] buffer = new byte[1024];
while(true){
int length = is.read(buffer,0,1024);
if(length == -1) break;
length = is.read(buffer,0,1024);
sb.append(new String(buffer));
}
} catch (Exception e) {
e.printStackTrace();
} 
return sb.toString().trim();
}

 

可是读出来的后台得到的结果是:

i.ashx?function=getAddrTypes&amp;id_u=39" img="local://resources/desktop/5.png"/>
      <gridItem text="骞挎挱淇℃伅" url="http://192.168.89.131/Api.ashx?function=getNewsList&amp;id_u=39" img="local://resources/desktop/6.png"/>
      <gridItem text="杈呭姪杞欢" url="http://192.168.89.131/Api.ashx?function=getHelpTool" img="local://resources/desktop/7.png"/>
      <gridItem text="閫?鍑虹郴缁?" url="cmd://exit_app" img="local://resources/desktop/8.png"/>
    </gridTable>
  </body>
</page>es/desktop/3.png"/>
      <gridItem text="鐭ヨ瘑搴?" url="http://192.168.89.131/Api.ashx?function=getKnowledgeTypes&amp;id_u=39" img="local://resources/desktop/0.png"/>
      <gridItem text="淇℃伅閲囬泦" url="http://192.168.89.131/Api.ashx?function=getCollType&amp;id_u=39" img="local://resources/desktop/1.png"/>
      <gridItem text="鍦ㄧ嚎浜ゆ祦" url="http://192.168.89.131/Api.ashx?function=getMyQuestionList&amp;id_u=39&amp;id_acc=64" img="local://resources/desktop/4.png"/>
      <gridItem text="閫氳褰?" url="http://192.168.89.131/Ap

 不但错行,而且还存在乱码,所以我换成用reader.read()方法来读取,

Reader r = new InputStreamReader(is,"utf-8");

 

这样一来乱码问题是解决了,不过还是有错行的问题,所以正确代码如下:

public static String readXml(String path){
		StringBuffer sb = new StringBuffer();
		try {
			InputStream is = new FileInputStream(path);
			Reader r = new InputStreamReader(is,"utf-8");
			BufferedReader br = new BufferedReader(r);
			String str = "";
			while(true){
				//读取一行文字数据
				str = br.readLine();
				if(str == null){
					break;
				}
				sb.append(str+"\n");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return sb.toString().trim();
	}

 

用BufferedReader.readLine()方法就可以了!

 

分享到:
评论

相关推荐

    java.io.CharConversionException: isHexDigit处理

    Java.io.CharConversionException: isHexDigit 处理详解 Java.io.CharConversionException: isHexDigit 是 Java 中一种常见的异常,通常发生在传输数据时编码不正确或 URL 传值时出现问题。本文将对该异常进行详细...

    java.io.Reader 和 java.io.InputStream 的区别

    #### `java.io.Reader`:字符流的读取器 `java.io.Reader`是所有字符输入流的超类。它主要用于读取字符数据,通常以Unicode编码(如UTF-8)的形式。这意味着`Reader`能够处理任何由16位字符组成的文本数据,这在...

    使用System.IO.Ports读取COM口数据

    C#串口编程之使用System.IO.Ports读取COM口数据 C#串口编程是计算机编程中的一种重要技术,用于控制和管理串行通信端口。串行通信是一种常用的数据传输方式,广泛应用于工业自动化、机器人控制、医疗器械等领域。...

    java.io.FileNotFoundException: *****(Too many open files)

    在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...

    java_io.rar_java 文件操作_java 读取 本地文件_java.io转动_文件操作

    本资源“java_io.rar”提供了关于如何在Java中进行文件操作的示例代码,包括读取、移动、删除和复制文件等常见任务。我们将深入探讨这些主题,以便更好地理解Java I/O API的使用。 首先,让我们从读取本地文件开始...

    Java.nio 与Java.io比较

    Java.io中还有专门针对非流式文件I/O的部分,这部分涵盖了文件的创建、删除、重命名等高级操作。`File`类帮助编写跨平台的代码,用于检查和操作文件和目录。 ### Java.nio简介 Java.nio(New I/O)是Java 1.4版本...

    java.io包讲解

    `java.io.Writer`是所有字符输出流的父类,它定义了一些基本方法,如写入单个字符、写入字符数组等。 - `public void write(int c)`:向流中写入单个字符。 - `public void write(char[] cbuf)`:将字符数组中的...

    sun.io.CharToByteConverter支持类

    网上找来了相关java文件,改文件包主要用于解决类似找不到sun.io.CharToByteConverter类及相关方法情况,放到对应引用文件目录下编译即可。 PS:java文件编码格式为UTF-8,如果有其它编码格式,自己调整一下就行,我...

    socket.io,socket.io-client下载

    1. **服务器端设置**:在Node.js项目中,导入`socket.io`模块,初始化服务器并监听特定端口,然后使用`io.on('connection', (socket) =&gt; {})`来处理新连接和事件。 2. **客户端连接**:在Java或Android应用中,导入...

    gnu.io.SerialPort( rxtx-2.1.7.jar)串口通讯

    串口通讯需要的jar包,gnu.io.SerialPort; gnu.io.CommPortIdentifier; gnu.io.SerialPort; gnu.io.SerialPortEvent; gnu.io.SerialPortEventListener; gnu.io.UnsupportedCommOperationException; Copy RXTXcomm...

    java.io.Serializable序列化问题

    实现 `Serializable` 接口后,可以通过 `java.io.ObjectOutputStream` 将对象写入文件或通过网络传输,也可以使用 `java.io.ObjectInputStream` 从文件读取对象或将对象从网络接收。 #### 三、序列化过程 序列化的...

    lumenworks.framework.io.Dll

    例如,通过使用LumenWorks.IO.Csv命名空间中的CsvReader类,开发者可以快速读取CSV文件,并将其转换为强类型的数据结构。 对于C++开发者,虽然C++本身不直接支持DLL,但可以使用DllImport特性来调用lumenworks....

    java.io:clojure.java.io 的 JK7 java.nio.file.Path 兼容性

    java.io clojure.java.io 的 JK7 java.nio.file.Path 兼容性依赖信息该库托管在 Releases 上。 依赖: [me.moocar/java.io " 0.1.0 " ]用法是 JDK7 中引入的文件路径的抽象。 这个库提供了和 Paths 之间的兼容性。 ...

    java.io的基础应用

    在Java中,IO操作主要分为字节流和字符流两大类,分别由`java.io.InputStream`和`java.io.OutputStream`以及`java.io.Reader`和`java.io.Writer`作为基类。字节流处理的是8位的字节,而字符流处理的是16位的Unicode...

    用java写socket.io客户端所需jar包

    - 创建Socket.IO客户端实例:`IO.Options options = new IO.Options();` 可以设置一些选项,如连接超时、重试次数等。 - 连接到服务器:`Socket socket = IO.socket("http://your-server-url:port");` - 注册事件...

    java.io包详细解说

    【Java IO包详解】 Java IO包是Java标准库中的核心组件之一,主要用于处理输入和输出操作。这个包包含了大量类和接口,它们提供了各种输入输出流、字符编码、数据转换以及文件操作等功能。Java IO的设计采用了...

    plus.io的各种使用

    Android 10系统开始 进一步增强了平台功能,为外部存储设备上的应用...作为这项工作的一部分,平台引入了进一步的改进,以简化向分区存储的转换,让用户更好地控制自己的文件,保护用户隐私数据,并限制文件混乱情况。

    文件路径正确,报java.io.FileNotFoundException异常的原因及解决办法

    在Java开发过程中,使用文件I/O操作时遇到java.io.FileNotFoundException异常是一个比较常见的问题。即使文件路径正确无误,也可能会因为多种原因导致这个异常的发生。该异常属于编译时异常,即必须显式处理才能通过...

    java io读取文件

    Java IO API提供了一系列类和接口,使得开发者能够高效地读取、写入和操作文件。下面我们将深入探讨Java IO读取文件的技术及其在大数据场景下的应用。 1. **基础概念** - **流(Stream)**:Java IO基于流的概念,...

    java file,java读取txt文档

    在Java中,`java.io.File`类是用于操作文件和目录的基本工具。它可以用来创建、删除、重命名文件,以及获取文件的属性信息,如大小、路径、最后修改时间等。 要读取一个TXT文档,我们需要使用Java的I/O流。这里主要...

Global site tag (gtag.js) - Google Analytics