1. java如何讀取指定行的數據
讀取文件指定行要用到類LineNumberReader,它是跟蹤行號的緩沖字元輸入流,其基類是BufferedReader。。它有兩個構造方法:
public LineNumberReader(Reader in)
使用默認輸入緩沖區的大小創建新的行編號 reader,默認輸入緩沖區的大小為8096個位元組。
pulbic LineNumberReader(Reader in,int size)
創建新的行編號 reader,將字元讀入給定大小的緩沖區。
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class ReadSelectedLine{
/**
* 讀取文件指定行。
*/
public static void main(String[] args) throws IOException {
// 指定讀取的行號
int lineNumber = 12;
// 讀取文件
File sourceFile = new
File("src/Chapter08/ReadSelectedLine.java");
// 讀取指定的行
readAppointedLineNumber(sourceFile, lineNumber);
// 獲取文件的內容的總行數
System.out.println(getTotalLines(sourceFile));
}
// 讀取文件指定行。
static void readAppointedLineNumber(File sourceFile, int lineNumber)
throws IOException {
FileReader in = new FileReader(sourceFile);
LineNumberReader reader = new LineNumberReader(in);
String s = reader.readLine();
if (lineNumber < 0 || lineNumber > getTotalLines(sourceFile)) {
System.out.println("不在文件的行數范圍之內。");
}
{
while (s != null) {
System.out.println("當前行號為:"
+ reader.getLineNumber());
reader.setLineNumber(20);
System.out.println("更改後行號為:"
+ reader.getLineNumber());
System.out.println(s);
System.exit(0);
s = reader.readLine();
}
}
reader.close();
in.close();
}
// 文件內容的總行數。
static int getTotalLines(File file) throws IOException {
FileReader in = new FileReader(file);
LineNumberReader reader = new LineNumberReader(in);
String s = reader.readLine();
int lines = 0;
while (s != null) {
lines++;
s = reader.readLine();
}
reader.close();
in.close();
return lines;
}
}
2. 用JAVA如何取得EXCEL 中指定的幾行的數據
可以使用poi來解析excel:
//獲取指定行,索引從0開始
hssfRow=hssfSheet.getRow(1);
//獲取總行數,獲取的是最後一行的編號(編號從0開始)
int rowNum = sheet.getLastRowNum();
然後拿到excel對象循環解析從50開始到100即可。
3. java讀寫文件指定行的問題
讀寫是兩個不同的分支,通常都是分開單獨使用的,在讀取到每行內容後,通過特定的條件判斷即可獲取到應用的行內容,之後進行輸出即可。
舉例:
可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容,此處如果增加必要的條件,就可以貨到的指定的內容
};
可以通過「FileOutputStream」創建文件實例,之後過「OutputStreamWriter」流的形式進行存儲,
OutputStreamWriter pw = null;//定義一個流
pw = new OutputStreamWriter(new FileOutputStream(「D:/test.txt」),"GBK");//確認流的輸出文件和編碼格式,此過程創建了「test.txt」實例
pw.write("我是要寫入到記事本文件的內容");//將要寫入文件的內容,可以多次write
pw.close();//關閉流
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
4. 怎麼用JAVA程序從一個TXT文件中按指定行讀取內容
基本結構如下,樓舉扮主可參考一下:
try{
pwd=System.getProperty("user.dir");//正宴灶獲取當前目錄
FileReader
fr
=
new
FileReader(pwd
+
"祥碰\\1.txt");
BufferedReader
br
=
new
BufferedReader(fr);
String
Line
=
br.readLine();
while
(Line
!=
null)
{
System.out.println(Line);
Line
=
br.readLine();
}
br.close();
fr.close();
}catch(IOException
ex){}
5. java 讀取csv文件里指定行列的值,比如讀取第三行第二列的值。
java讀取csv文件,按照指定格式:
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
/**
* 讀取CSV文件
* 所謂"CSV",是Comma Separated Value(逗號分隔值)的英文縮寫,通常都是純文本文件。
* 可以看成資料庫程序與電子表格之間一種中間通信文件,資料庫可以導出。csv格式,excel也可以導入並打開。csv文件,例子如下
* sj_mino1001.jpg,715282,4FB55FE8,
* sj_mino1002.jpg,471289,93203C5C,
* sj_mino1003.jpg,451929,C4E80467,
*
*/
public class CSVDeal{
public static void main(String[] args) {
try {
String[] stringList;
String csvFilePath = "C:\\Users\\Administrator\\Desktop\\20140227135936.csv";
String sourceFileString= "C:\\Users\\Administrator\\Desktop\\test.csv";
CsvReader reader = new CsvReader(csvFilePath); //默認是逗號分隔符,UTF-8編碼
CsvWriter writer = new CsvWriter(sourceFileString);
/*
* readRecord()判斷是否還有記錄,getValues()讀取當前記錄,然後指針下移
*/
reader.readRecord();
writer.writeRecord(reader.getValues()); //讀取表頭
/*
* 逐行讀取,以免文件太大
* 處理表頭後面的數據,這里是在第12列數據統一加前綴"V"
*/
while(reader.readRecord()){
stringList = reader.getValues();
stringList[11] = 'V' + stringList[11];
writer.writeRecord(stringList);
}
reader.close();
writer.close();
}catch(Exception ex){
System.out.println(ex);
}
}
}
6. 我想用java來讀取Excel文件的某行某列,就是指定讀取某個位置的數據,然後顯示出來!怎麼弄求
工念慧作中用到的導入excel一個方法,你還可以通過一些插件導入,代碼要你自己了,基蘆高辯本原理如下...
public Object importDoucument(MultipartFile uploadfile)
{
StringBuffer resultMessage = new StringBuffer();
ExcelImport excelImport = new ExcelImport();
Sheet sheet = null;
try
{
// 驗證文件格式 如不出錯 返回工作簿
excelImport.verifyExeclFile(uploadfile);
ExcelBean excelBean = excelImport.getExcelBean();
if (null != excelBean)
{
sheet = excelBean.getSheet();
}
//導入excel文件分析整理出list對象
List<StcCoreElements> dataList = getAssessCateRange(sheet, "戰略要素名稱", "戰略要素名稱"陪缺, 2, 1);
int num = 0;
if(dataList.size()>0){
for (StcCoreElements itemStcVO : dataList)
{
StcCoreElements stcCoreElementsVo = nitemStcVO
//*****修改些處
this.save(stcCoreElementsVo);
++num;
}
}
resultMessage.append("已成功導入 "+num+" 條核心要素信息");
}
catch (Exception e)
{
resultMessage.append(e.getMessage());
e.printStackTrace();
}
finally
{
excelImport.close();
}
return resultMessage;
}
private List<StcCoreElements> getAssessCateRange(Sheet sheet, String startName, String endName, int rowNum, int titleRowNum)
{
int[] cateRange = new int[2];
List<StcCoreElements> dataList = new ArrayList<StcCoreElements>();
int lastRowNumber = sheet.getLastRowNum();
Row cateRow = sheet.getRow(rowNum - 1);
Cell cateCell = cateRow.getCell(0);
String cateCellValue = ImportExcelUtil.getCellValue(cateCell, sheet);
if (StringUtils.isNotBlank(cateCellValue))
{
if (StringUtils.startsWith(cateCellValue, startName))
{
cateRange[0] = rowNum + titleRowNum;
}
}
String currentCellValue0 = "";
do
{
Row currentRow = sheet.getRow(rowNum);
StcCoreElements info =new StcCoreElements();
Cell currentCell0 = currentRow.getCell(0);
currentCellValue0 = ImportExcelUtil.getCellValue(currentCell0, sheet);
info.setOverallPlan(currentCellValue0);
dataList.add(info);
rowNum++;
} while (rowNum <= lastRowNumber);
return dataList;
}
7. java中poi怎麼獲取指定列的行數
讀取excel中的數據,先載入好excel表,然後逐行逐列讀取即可。
對於上面的行數不一樣,其實行數是一樣的,只是下面兩行的C列數據為空而已,代碼中加上判斷即可。
示例代碼如下:
for(int rowIndex=0;rowIndex<sheet.getPhysicalNumberOfRows();rowIndex++)
{
Row row = sheet.getRow(rowIndex);
if(row == null) continue;
for(int cellIndex=0;cellIndex<row.getPhysicalNumberOfCells();cellIndex++)
{
Cell content = row.getCell(cellIndex);
if(content== null) continue; //判斷空
//對於內容進行操作
....
}
}
有問題歡迎提問,滿意請採納,謝謝!
8. Java怎麼讀取文件的任意行
java中沒有指定行的方法。
只能挨個讀取。如果你想快速提取。而且文件又不是很大的話,就用LIST吧。