java文件操作,java文件操作漏洞

本文目錄一覽:

java選擇文件操作

你用I/0把要保存的東西,直接寫到*.ini文件中不就可以了嗎 這個是我寫連連看遊戲,用來保存記錄的,自己參考下,很簡單。 importjava.awt.Point; importjava.io.*; importjava.util.*; publicclassLoadAndSave{ privatestaticfinalPropertiesprop=newProperties(); publicstaticFilerecordFile=newFile(“record.dat”); publicstaticFilesetFile=newFile(“setup.ini”); publicstaticStringBuilder[]setLines; publicstaticintgetRecord(inttotal){ intseconds=999999999; try{ BufferedReaderbReader=newBufferedReader(newInputStreamReader(newFileInputStream(recordFile))); Stringline=null; while((line=bReader.readLine())!=null) try{ String[]values=line.split(“\t”); intn=Integer.parseInt(values[1]); ints=Integer.parseInt(values[2]); if(n==total

java中如何使用緩衝區對文件進行讀寫操作?

首先,了解下什麼是緩衝區:

電腦內存分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區。

棧——就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的存儲區。裡面的變數通常是局部變數、函數參數等。

堆——就是那些由new分配的內存塊,他們的釋放編譯器不去管,由我們的應用程序去控制,一般一個new就要對應一個delete.如果程序員沒有釋放掉,那麼在程序結束後,操作系統會自動回收。

自由存儲區——就是那些由malloc等分配的內存塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

全局/靜態存儲區——全局變數和靜態變數被分配到同一塊內存中,在以前的C語言中,全局變數又分為初始化的和未初始化的,在C++裡面沒有這個區分了,他們共同佔用同一塊內存區。

常量存儲區,這是一塊比較特殊的存儲區,他們裡面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改)

電腦緩衝區就是預留下來的做為急用的那一部分,為暫時置放輸出或輸入資料的內存。

如何對緩衝區進行操作:

當我們讀寫文本文件的時候,採用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的類是InputStreamReader, 它是位元組轉換為字元的橋樑。你可以在構造器重指定編碼的方式,如果不指定的話將採用底層操作系統的默認編碼方式,例如GBK等。使用FileReader讀取文件:

FileReader fr = new FileReader(“ming.txt”);

int ch = 0;

while((ch = fr.read())!=-1 )

{

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

}

其中read()方法返回的是讀取得下個字元。當然你也可以使用read(char[] ch,int off,int length)這和處理二進位文件的時候類似。

事實上在FileReader中的方法都是從InputStreamReader中繼承過來的。read()方法是比較好費時間的,如果為了提高效率我們可以使用BufferedReader對Reader進行包裝,這樣可以提高讀取得速度,我們可以一行一行的讀取文本,使用readLine()方法。

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(“ming.txt”)));

String data = null;

while((data = br.readLine())!=null)

{

System.out.println(data);

}

了解了FileReader操作使用FileWriter寫文件就簡單了,這裡不贅述。

Eg.我的綜合實例:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

public class testFile {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

// file(內存)—-輸入流—-【程序】—-輸出流—-file(內存)

File file = new File(“d:/temp”, “addfile.txt”);

try {

file.createNewFile(); // 創建文件

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 向文件寫入內容(輸出流)

String str = “親愛的小南瓜!”;

byte bt[] = new byte[1024];

bt = str.getBytes();

try {

FileOutputStream in = new FileOutputStream(file);

try {

in.write(bt, 0, bt.length);

in.close();

// boolean success=true;

// System.out.println(“寫入文件成功”);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

// 讀取文件內容 (輸入流)

FileInputStream out = new FileInputStream(file);

InputStreamReader isr = new InputStreamReader(out);

int ch = 0;

while ((ch = isr.read()) != -1) {

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

}

} catch (Exception e) {

// TODO: handle exception

}

}

}

如何使用命令行編譯以及運行java文件

要想編譯和運行java文件,很簡單,只需要兩個命令:

(1)javac:作用:編譯java文件;使用方法: javac Hello.java ,如果不出錯的話,在與Hello.java 同一目錄下會生成一個Hello.class文件,這個class文件是操作系統能夠使用和運行的文件。

(2)java: 作用:運行.class文件;使用方法:java Hello,如果不出錯的話,會執行Hello.class文件。注意:這裡的Hello後面不需要擴展名。

下面舉例說明:

假設我有一個Hello.java文件放在D:\javatest 文件夾下。

打開cmd命令窗口,會出現C:\user\lenovo 這裡出現的是系統用戶名,這裡我們需要將路徑轉移到java文件所在目錄。

緊接著輸入 D:回車,會出現一下界面:

這時候我們需要定位到java文件所在目錄(這裡是javatest目錄),接著輸入 cd javatest 回車。

此時進入到D:\javatest目錄中,此時的Hello.java文件就在這裡

這時候我們就可以用javac命令編譯啦,輸入javac Hello.java回車

這裡如果沒有任何提示表示編譯成功,此時打開d:\javatest文件夾你會發現此時多了一個名為Hello.class的文件,這就是操作系統能夠運行的文件。

接著輸入 java Hello回車,你就會看到文件被運行的結果。

這裡有幾個要注意的問題

第一:Hello.java中的內容是一個類,這個類的名字與.java文件名字必須完全一致。如果不一致將出錯。這裡當你通過eclipse創建一個類文件的時候你就會理解的更清楚了,這裡不贅述。

第二:javac 和 java 命令的使用方法要注意,格式。

第三:要使用這兩命令,必須配置好環境變數。

java讀取文件操作

關於FileInputStream你的理解是對的,讀取操作是順序向前,讀過的不會再讀。

不過第二個參數0你可能是誤會了。它的作用不是指fis里的位置,而是指buffer里的偏移量。

在read中,0是指從buffer[0]開始保存數據;wirte中是指寫出的數據是從buffer[0]開始。

Java Doc里的解釋是這樣的:

int java.io.FileInputStream.read(byte[] b, int off, int len) throws IOException

b the buffer into which the data is read.

off the start offset in the destination array b

len the maximum number of bytes read.

java 文件夾操作

你好,按照你的要求代碼編寫如下,可以直接運行

import java.io.File;

public class test {

public static void main(String[] args) {

File root = new File(“d:\\”);

for (File file : root.listFiles()) {

if (file.isDirectory()) {

for (File f : file.listFiles()) {

String fileName = f.getName();

if (fileName.endsWith(“.png”)) {

System.out.println(file.getName());

break;

}

}

}

}

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230548.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 18:17
下一篇 2024-12-10 18:17

相關推薦

發表回復

登錄後才能評論