用java写个文件读取工具类
时间: 2024-02-28 20:23:08 浏览: 18
好的,您想要一个Java文件读取工具类,以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileUtil {
public static String readFile(String filePath) throws IOException {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
return content.toString();
}
}
```
您可以将此类添加到您的Java项目中,然后通过调用`FileUtil.readFile(filePath)`方法读取文件的内容(文件路径作为方法参数)。
相关问题
用java8写一个文件流工具类
以下是一个简单的文件流工具类,可以实现读取和写入文件:
```java
import java.io.*;
public class FileStreamUtil {
/**
* 读取文本文件
* @param filePath 文件路径
* @return 文件内容字符串
*/
public static String readTextFile(String filePath) {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append(System.lineSeparator());
}
} catch (IOException e) {
e.printStackTrace();
}
return content.toString();
}
/**
* 写入文本文件
* @param filePath 文件路径
* @param content 文件内容字符串
*/
public static void writeTextFile(String filePath, String content) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
writer.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取二进制文件
* @param filePath 文件路径
* @return 文件内容字节数组
*/
public static byte[] readBinaryFile(String filePath) {
try (InputStream is = new FileInputStream(filePath)) {
byte[] content = new byte[is.available()];
is.read(content);
return content;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
/**
* 写入二进制文件
* @param filePath 文件路径
* @param content 文件内容字节数组
*/
public static void writeBinaryFile(String filePath, byte[] content) {
try (OutputStream os = new FileOutputStream(filePath)) {
os.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
使用示例:
```java
// 读取文本文件
String text = FileStreamUtil.readTextFile("test.txt");
System.out.println(text);
// 写入文本文件
FileStreamUtil.writeTextFile("test.txt", "Hello, world!");
// 读取二进制文件
byte[] binaryData = FileStreamUtil.readBinaryFile("test.bin");
System.out.println(Arrays.toString(binaryData));
// 写入二进制文件
FileStreamUtil.writeBinaryFile("test.bin", new byte[]{0x12, 0x34, 0x56});
```
用java写一个读取大文件excel的工具类
好的,可以的。以下是一个简单的Java工具类,可以读取大文件Excel:
```
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelReader {
public static ArrayList<ArrayList<String>> readExcel(File file) throws IOException {
ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
FileInputStream fis = new FileInputStream(file);
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
ArrayList<String> rowData = new ArrayList<String>();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
rowData.add(cell.getStringCellValue());
break;
case Cell.CELL_TYPE_NUMERIC:
rowData.add(Double.toString(cell.getNumericCellValue()));
break;
case Cell.CELL_TYPE_BOOLEAN:
rowData.add(Boolean.toString(cell.getBooleanCellValue()));
break;
default:
rowData.add("");
break;
}
}
data.add(rowData);
}
workbook.close();
fis.close();
return data;
}
}
```
这个工具类使用了Apache POI库,可以读取XLSX格式的Excel文件。它会将每一行的数据存储在一个ArrayList中,然后将所有的行数据存储在一个ArrayList<ArrayList<String>>中返回。