java讀取,java讀取excel文件

本文目錄一覽:

如何通過JAVA 讀取.wps et及 dps文件格式的內容

下面是三個java例子,關於讀取wps/et/dps的方法

1.讀取wps(讀取文本): 通過流加載wps文件,讀取文字內容

import com.spire.doc.*;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileWriter;

import java.io.IOException;

public class ReadTextFromWPS {

public static void main(String[] args) throws IOException{

//通過流加載WPS文字文檔

FileInputStream inputStream = new FileInputStream(new File(“test.wps”));

Document doc = new Document();

doc.loadFromStream(inputStream, FileFormat.Doc);

//獲取文本保存為String

String text = doc.getText();

//將String寫入Txt

writeStringToTxt(text,”讀取WPS文本.txt”);

}

public static void writeStringToTxt(String content, String txtFileName) throws IOException {

FileWriter fWriter= new FileWriter(txtFileName,true);

try {

fWriter.write(content);

}catch(IOException ex){

ex.printStackTrace();

}finally{

try{

fWriter.flush();

fWriter.close();

} catch (IOException ex) {

ex.printStackTrace();

}

}

}

}

2. 讀取et:直接加載et格式的表格文件,讀取數據

import com.spire.xls.*;

public class ExcelToText {

public static void main(String[] args) {

//加載et格式的表格文件

Workbook workbook = new Workbook();

workbook.loadFromFile(“test.et”);

//獲取工作表

Worksheet sheet = workbook.getWorksheets().get(0);

//獲取指定單元格中的文本數據

CellRange range = sheet.getCellRange(“A1”);

String text = range.getText().trim();

System.out.println(text);

}

}

3.讀取dps:直接加載dps格式的幻燈片文檔,讀取文本

import com.spire.presentation.IAutoShape;

import com.spire.presentation.ISlide;

import com.spire.presentation.ParagraphEx;

import com.spire.presentation.Presentation;

import java.io.FileWriter;

public class ExtractText {

public static void main(String[]args) throws Exception{

//加載測試文檔

Presentation ppt = new Presentation();

//ppt.loadFromFile(“test.pptx”);

ppt.loadFromFile(“test.dps”);

StringBuilder buffer = new StringBuilder();

//遍歷文檔中的幻燈片,提取文本

for (Object slide : ppt.getSlides())

{

for (Object shape : ((ISlide) slide).getShapes())

{

if (shape instanceof IAutoShape)

{

for (Object tp : ((IAutoShape) shape).getTextFrame().getParagraphs())

{

buffer.append(((ParagraphEx) tp).getText());

}

}

}

}

//保存到文本文件

FileWriter writer = new FileWriter(“ExtractTextfromDPS.txt”);

writer.write(buffer.toString());

writer.flush();

writer.close();

}

}

這裡須在Java程序中導入spire.office.jar文件。

Java讀取文件的幾種方法

方式一:採用ServletContext讀取,讀取配置文件的realpath,然後通過文件流讀取出來。因為是用ServletContext讀取文件路徑,所以配置文件可以放入在web-info的classes目錄中,也可以在應用層級及web-info的目錄中。文件存放位置具體在eclipse工程中的表現是:可以放在src下面,也可放在web-info及webroot下面等。因為是讀取出路徑後,用文件流進行讀取的,所以可以讀取任意的配置文件包括xml和properties。缺點:不能在servlet外面應用讀取配置信息。

方式二:採用ResourceBundle類讀取配置信息,

優點是:可以以完全限定類名的方式加載資源後,直接的讀取出來,且可以在非Web應用中讀取資源文件。缺點:只能加載類classes下面的資源文件且只能讀取.properties文件。

方式三:採用ClassLoader方式進行讀取配置信息

優點是:可以在非Web應用中讀取配置資源信息,可以讀取任意的資源文件信息

缺點:只能加載類classes下面的資源文件。

方法4 getResouceAsStream

XmlParserHandler.class.getResourceAsStream 與classloader不同

JAVA中讀取文件(二進制,字符)內容的幾種方

JAVA中讀取文件內容的方法有很多,比如按字節讀取文件內容,按字符讀取文件內容,按行讀取文件內容,隨機讀取文件內容等方法,本文就以上方法的具體實現給出代碼,需要的可以直接複製使用

public class ReadFromFile {

/**

* 以字節為單位讀取文件,常用於讀二進制文件,如圖片、聲音、影像等文件。

*/

public static void readFileByBytes(String fileName) {

File file = new File(fileName);

InputStream in = null;

try {

System.out.println(“以字節為單位讀取文件內容,一次讀一個字節:”);

// 一次讀一個字節

in = new FileInputStream(file);

int tempbyte;

while ((tempbyte = in.read()) != -1) {

System.out.write(tempbyte);

}

in.close();

} catch (IOException e) {

e.printStackTrace();

return;

}

try {

System.out.println(“以字節為單位讀取文件內容,一次讀多個字節:”);

// 一次讀多個字節

byte[] tempbytes = new byte[100];

int byteread = 0;

in = new FileInputStream(fileName);

ReadFromFile.showAvailableBytes(in);

// 讀入多個字節到字節數組中,byteread為一次讀入的字節數

while ((byteread = in.read(tempbytes)) != -1) {

System.out.write(tempbytes, 0, byteread);

}

} catch (Exception e1) {

e1.printStackTrace();

} finally {

if (in != null) {

try {

in.close();

} catch (IOException e1) {

}

}

}

}

/**

* 以字符為單位讀取文件,常用於讀文本,數字等類型的文件

*/

public static void readFileByChars(String fileName) {

File file = new File(fileName);

Reader reader = null;

try {

System.out.println(“以字符為單位讀取文件內容,一次讀一個字節:”);

// 一次讀一個字符

reader = new InputStreamReader(new FileInputStream(file));

int tempchar;

while ((tempchar = reader.read()) != -1) {

// 對於windows下,\r\n這兩個字符在一起時,表示一個換行。

// 但如果這兩個字符分開顯示時,會換兩次行。

// 因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。

if (((char) tempchar) != ‘\r’) {

System.out.print((char) tempchar);

}

}

reader.close();

} catch (Exception e) {

e.printStackTrace();

}

try {

System.out.println(“以字符為單位讀取文件內容,一次讀多個字節:”);

// 一次讀多個字符

char[] tempchars = new char[30];

int charread = 0;

reader = new InputStreamReader(new FileInputStream(fileName));

// 讀入多個字符到字符數組中,charread為一次讀取字符數

while ((charread = reader.read(tempchars)) != -1) {

// 同樣屏蔽掉\r不顯示

if ((charread == tempchars.length)

(tempchars[tempchars.length – 1] != ‘\r’)) {

System.out.print(tempchars);

} else {

for (int i = 0; i charread; i++) {

if (tempchars[i] == ‘\r’) {

continue;

} else {

System.out.print(tempchars[i]);

}

}

}

}

} catch (Exception e1) {

e1.printStackTrace();

} finally {

if (reader != null) {

try {

reader.close();

} catch (IOException e1) {

}

}

}

}

/**

* 以行為單位讀取文件,常用於讀面向行的格式化文件

*/

public static void readFileByLines(String fileName) {

File file = new File(fileName);

BufferedReader reader = null;

try {

System.out.println(“以行為單位讀取文件內容,一次讀一整行:”);

reader = new BufferedReader(new FileReader(file));

String tempString = null;

int line = 1;

// 一次讀入一行,直到讀入null為文件結束

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

// 顯示行號

System.out.println(“line ” + line + “: ” + tempString);

line++;

}

reader.close();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (reader != null) {

try {

reader.close();

} catch (IOException e1) {

}

}

}

}

/**

* 隨機讀取文件內容

*/

public static void readFileByRandomAccess(String fileName) {

RandomAccessFile randomFile = null;

try {

System.out.println(“隨機讀取一段文件內容:”);

// 打開一個隨機訪問文件流,按只讀方式

randomFile = new RandomAccessFile(fileName, “r”);

// 文件長度,字節數

long fileLength = randomFile.length();

// 讀文件的起始位置

int beginIndex = (fileLength 4) ? 4 : 0;

// 將讀文件的開始位置移到beginIndex位置。

randomFile.seek(beginIndex);

byte[] bytes = new byte[10];

int byteread = 0;

// 一次讀10個字節,如果文件內容不足10個字節,則讀剩下的字節。

// 將一次讀取的字節數賦給byteread

while ((byteread = randomFile.read(bytes)) != -1) {

System.out.write(bytes, 0, byteread);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (randomFile != null) {

try {

randomFile.close();

} catch (IOException e1) {

}

}

}

}

/**

* 顯示輸入流中還剩的字節數

*/

private static void showAvailableBytes(InputStream in) {

try {

System.out.println(“當前字節輸入流中的字節數為:” + in.available());

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

String fileName = “C:/temp/newTemp.txt”;

ReadFromFile.readFileByBytes(fileName);

ReadFromFile.readFileByChars(fileName);

ReadFromFile.readFileByLines(fileName);

ReadFromFile.readFileByRandomAccess(fileName);

}

}

Java 如何讀取txt文件的內容?

java讀取txt文件內容。可以作如下理解:

首先獲得一個文件句柄。File file = new File(); file即為文件句柄。兩人之間連通電話網絡了。接下來可以開始打電話了。

通過這條線路讀取甲方的信息:new FileInputStream(file) 目前這個信息已經讀進來內存當中了。接下來需要解讀成乙方可以理解的東西

既然你使用了FileInputStream()。那麼對應的需要使用InputStreamReader()這個方法進行解讀剛才裝進來內存當中的數據

解讀完成後要輸出呀。那當然要轉換成IO可以識別的數據呀。那就需要調用字節碼讀取的方法BufferedReader()。同時使用bufferedReader()的readline()方法讀取txt文件中的每一行數據哈。

package com.campu;

 

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.Reader;

 

/**

 * @author Java團長

 * H20121012.java

 * 2017-10-29上午11:22:21

 */

public class H20121012 {

    /**

     * 功能:Java讀取txt文件的內容

     * 步驟:1:先獲得文件句柄

     * 2:獲得文件句柄當做是輸入一個字節碼流,需要對這個輸入流進行讀取

     * 3:讀取到輸入流後,需要讀取生成字節流

     * 4:一行一行的輸出。readline()。

     * 備註:需要考慮的是異常情況

     * @param filePath

     */

    public static void readTxtFile(String filePath){

        try {

                String encoding=”GBK”;

                File file=new File(filePath);

                if(file.isFile()  file.exists()){ //判斷文件是否存在

                    InputStreamReader read = new InputStreamReader(

                    new FileInputStream(file),encoding);//考慮到編碼格式

                    BufferedReader bufferedReader = new BufferedReader(read);

                    String lineTxt = null;

                    while((lineTxt = bufferedReader.readLine()) != null){

                        System.out.println(lineTxt);

                    }

                    read.close();

        }else{

            System.out.println(“找不到指定的文件”);

        }

        } catch (Exception e) {

            System.out.println(“讀取文件內容出錯”);

            e.printStackTrace();

        }

     

    }

     

    public static void main(String argv[]){

        String filePath = “L:\\Apache\\htdocs\\res\\20121012.txt”;

//      “res/”;

        readTxtFile(filePath);

    }

     

     

 

}

我有一個微信公眾號,經常會分享一些Java技術相關的乾貨文章,還有一些學習資源。

如果你需要的話,可以用微信搜索“Java團長”或者“javatuanzhang”關注。

原創文章,作者:SIFO,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144014.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SIFO的頭像SIFO
上一篇 2024-10-24 15:26
下一篇 2024-10-24 15:26

相關推薦

發表回復

登錄後才能評論