1. 程式人生 > 其它 >3月12號筆記

3月12號筆記

昨天的程式的資料存放在一個叫”input.txt“的檔案中,還有一種奇怪的格式(例:一行六列):

1,
5,6,-3,8,-9,2

現在的問題是這個檔案怎麼讀?


複習輸入輸出流(基礎):

輸入輸出流可分為兩大類:位元組輸入輸出流,字元輸入輸出流。對於輸入的一個長度的資料,位元組流佔用一個位元組,字元流佔用兩個位元組

位元組流---inputstream,outputstream

字元流---reader,writer


現在我們要做的功能是從檔案裡讀資料,這樣就用到了檔案輸入輸出流

FileInputStream和FileOutputStream,這兩個是以後包裝的基礎,就像System.in和System.out一樣

對於上述檔案輸入輸出流,我們有兩種包裝方式,Buffered包裝和轉化為字元流InputstreamReader

(在輸入漢字時,希望輸入完了得到的是自己能看懂的字串,就轉化為字元流)

字元流也可以包裝BufferedReader,是BufferedInputstreamReader的簡寫

最後要注意的是,字元流的輸入單位是字元,Char;位元組流輸入的單位是位元組,Byte。


現在就可以讀檔案了

package my0311;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;


public class Main {
	
	public static int max(int a,int b) {
		return a>b?a:b;
	}
	
	public static void main(String[] args) throws IOException {
		int[] a=new int[10010];
		int[] res=new int[10010];
		int n;
		BufferedReader br= new BufferedReader(new FileReader("src\\my0311\\myFile.txt"));
		String[] s=br.readLine().split(",");
		n=Integer.parseInt(s[0]);
		
		s=br.readLine().split(",");
		for(int i=1;i<=n;i++) {
			a[i]=Integer.parseInt(s[i-1]);
		}
		int k=a[0];
		for(int i=1;i<=n;i++) {
			if(res[i-1]<0) res[i]=a[i];
			else res[i]=a[i]+res[i-1];
			k=max(k,res[i]);
		}
		
		System.out.println(k);
		
	}
}