❶ java如何讀取TXT文件中的部分數字
java讀取txt文件內容,可以作如下理解:
1、首先獲得一個文件句柄。File file = new File(); file即為文件句柄。兩人之間連通電話網路了,接下來可以開始打電話了;
2、通過這條線路讀取甲方的信息:new FileInputStream(file) 目前這個信息已經讀進來內存當中了。接下來需要解讀成乙方可以理解的東西;
3、既然使用了FileInputStream()。那麼對應的需要使用InputStreamReader()這個方法進行解讀剛才裝進來內存當中的數據;
4、解讀完成後就要輸出,那麼要轉換成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 碼農小江
* H20121012.java
* 2012-10-12下午11:40:21
*/
public class H20121012 {
/**
* @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中讀取txt文件時怎麼將數字和字元串提取出來
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
class Test {
private static BufferedReader bw;
public static void main(String[] args) {
String ss = null;
List<TestPo> list = new ArrayList<TestPo>();
try{
File file=new File("E:\\test.txt");
FileOutputStream out=new FileOutputStream(new File("E:\\test1.txt"),true);
bw=new BufferedReader(new FileReader(file));
boolean flag = true;
int[] temps = null;
while((ss=bw.readLine())!=null){
String[] mark = ss.split(":");
int sum =0;
TestPo po = new TestPo();
int[] temp = new int[mark.length-1];
temps = new int[mark.length-1];
for (int i = 1;i< mark.length;i++) {
temp[i-1] = Integer.parseInt(mark[i].trim());
sum += temp[i-1];
if (flag) {
temps[i-1] = 0;
}
}
flag = false;
po.setMark(temp);
po.setName(mark[0]);
po.setAvg(sum/(mark.length-1));
list.add(po);
out.write(("\t\n"+ss).getBytes());
}
bw.close();
out.close();
int row = list.size();
int[][] marks = new int[row+1][];
for (int i = 0; i < row; i++) {
marks[i] = list.get(i).getMark();
}
marks[row] = temps;
int sumTemp =0 ;
int count = list.get(0).getMark().length;
for (int i = 0; i < count; i++) {
for (int j = 0; j < row; j++) {
sumTemp += marks[j][i];
}
marks[row][i] = sumTemp/row;
sumTemp = 0;
}
for (int[] is : marks) {
for (int i : is) {
System.out.print(i+" ");
}
System.out.println();
}
}catch(IOException e){
e.printStackTrace();
}
for (TestPo po : list) {
System.out.println("Name:"+po.getName()+" AVG:"+po.getAvg());
}
}
}
class TestPo{
private String name;
private Integer avg;
private int[] mark;
public int[] getMark() {
return mark;
}
public void setMark(int[] mark) {
this.mark = mark;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAvg() {
return avg;
}
public void setAvg(Integer avg) {
this.avg = avg;
}
}
❸ java 按行讀取txt文件的數字
可以通過Java的IO流實現txt文本的讀取,然後用readline實現按行讀取。具體代碼如下:
packagetest;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.List;
publicclassTest{
publicstaticdouble[]writeToDat(Stringpath){
Filefile=newFile(path);
Listlist=newArrayList();
double[]nums=null;
try{
BufferedReaderbw=newBufferedReader(newFileReader(file));
Stringline=null;
//因為不知道有幾行數據,所以先存入list集合中
while((line=bw.readLine())!=null){
list.add(line);
}
bw.close();
}catch(IOExceptione){
e.printStackTrace();
}
//確定數組長度
nums=newdouble[list.size()];
for(inti=0;i<list.size();i++){
Strings=(String)list.get(i);
nums[i]=Double.parseDouble(s);
}
returnnums;
}
publicstaticvoidmain(String[]args){
Stringpath="d:/file4.txt";
double[]nums=writeToDat(path);
for(inti=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}
❹ JAVA怎麼讀取一個TXT文件的數字(數字有幾萬個)並畫出坐標圖
1.用java.io讀出txt的內容到一個String裡面
2.使用String.split()以「\n」分割。這樣每一個元素就是每一行的橫豎坐標
3.使用循環,在用String.split()以「 」分割。這樣每個元素就是橫坐標和縱坐標
4.把這兩個數讀給Graphics就可以繪制了
其實挺簡單的
❺ java寫入txt文件 想要修改txt文件每一行的第一個數字 加一就好
java實現向txt每行增加一位數字,思路是這樣的:使用I/O操作每次讀取一行文字,使用string增加一個數字一,保存在緩存另一個list裡面,後接一個換行符,等到全部讀取完畢,在讀取list的內容,寫入txt文件裡面,示例如下:
packagecom.zeal.card;//這里是我自己臨時用的包名,你自己改一下就好了
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
publicclassDemo{
/**
*主方法
*@paramargs
*/
publicstaticvoidmain(String[]args){
printData();
}
/**
*讀取txt文檔第一行數據中的第3位到第9位,並輸出到控制台
*/
publicstaticvoidprintData(){
//定義文本文件數組,這里是臨時演示用,請自己改寫
String[]txtFiles={
"c:/a.txt",
"c:/b.txt",
"c:/c.txt",
};
//遍歷文件
for(inti=0;i<txtFiles.length;i++){
try{
//得到文件
Filefile=newFile(txtFiles[i]);
//如果文件存在
if(file.exists()){
//建立緩沖包裝器
BufferedReaderin=null;
in=newBufferedReader(newInputStreamReader(newFileInputStream(file)));
//讀出一行(因為只是讀一行,沒必要遍歷全部文件內容)
Stringtemp=in.readLine();
//如果不為空,並且長度至少為9
if(temp!=null){
Stringtxt="一"+temp;//每行前面增加一個數字一。
System.out.println("取出數據:"+txt);
Listli=newArrayList();
Listli=newArrayList();
li.add(temp);
}
}
BufferedWriterin=null;
in=newBufferedWriter(newInputStreamWriter(newFileOutputStream(file)));
}
}catch(Exceptione){
e.printStackTrace();
}
}
}
}