java輸出文件夾
Ⅰ java中如何實現文件的輸入輸出
程序如下:
<span style="color:#990000;">
</span>File file1 = new File("/home/a123/a");
if (file1.exists()) {
System.out.println("存在文件夾a");
} else {
file1.mkdir(); // 文件夾的創建 創建文件夾/home/a123/a
}
File file2 = new File("/home/a123/a/test");
if (file2.exists()) {
System.out.println("存在文件夾或者文件test");
} else {
try {
file2.createNewFile(); // 文件的創建,注意與文件夾創建的區別
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 最簡單的文件讀寫方法是使用類FileWriter
* (它的父類依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object );
*/
// 下面是向文件file2裡面寫數據
try {
FileWriter fileWriter = new FileWriter(file2);
String s = new String("This is a test! \n" + "aaaa");
fileWriter.write(s);
fileWriter.close(); // 關閉數據流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
* 這樣寫數據的話,是完全更新文件test裡面的內容,即把以前的東西全部刪除,重新輸入。
* 如果不想刪除以前的數據,而是把新增加的內容增添在文件末尾處。只需要在創建FileWriter對象時候,使用另外一個構造函數即可:
* FileWriter fileWriter=new FileWriter(file2,true);
*/
// 下面是從文件file2讀東西
try {
FileReader fileReader = new FileReader(file2);
String s = null;
char ch;
try {
char[] c = new char[100];
fileReader.read(c,0,2); // 具體想得到文件裡面的什麼值(單個char?int?還是String?),
System.out.println(c);
fileReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
* 具體想得到文件裡面的什麼值(單個char?int?還是String?),需要知道不通read的不同用法:
* 1. int read() 讀取單個字元。
* 2. int read(char[] cbuf) 將字元讀入數組。 可以再將字元型數組轉化位字元串
* 3. int read(char[] cbuf,int off,int len) 將字元讀入數組的某一部分。
* 這三個方法都返回一個int值,作用是:讀取的字元數,如果已到達流的末尾,則返回 -1.
*/
}
Ⅱ Java請問如何輸出jar內部文件到指定文件夾
jar本質上是一個zip文件,可以使用apache commons-compress包來操作它,遍歷壓縮包中的所有文件,找到需要的文件並以文件流的形式寫到指定的外部文件中。用法可以自己搜索。
Ⅲ Java 如何輸出指定路徑下的所有文件信息,包括文件名,最新編輯時間
獲取文件名
importjava.io.File;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassFindFiles{
publicstaticvoidmain(String[]args){
Stringpath="e:/service_all";
FindFilesMethod1(path);
}
(Stringpath){
List<Map<String,Object>>files=newArrayList<Map<String,Object>>();
List<Map<String,Object>>folders=newArrayList<Map<String,Object>>();
Filefile=newFile(path);
File[]tempList=file.listFiles();
System.out.println("該目錄下對象個數:"+tempList.length);
for(inti=0;i<tempList.length;i++){
if(tempList[i].isFile()){
Map<String,Object>filesMap=newHashMap<String,Object>();
filesMap.put("fileUrl",tempList[i].toString().replaceAll("\\","/"));
filesMap.put("fileName",tempList[i].getName().toString().replaceAll("\\","/"));
files.add(filesMap);
}
if(tempList[i].isDirectory()){
Map<String,Object>foldersMap=newHashMap<String,Object>();
foldersMap.put("folderUrl",tempList[i].toString().replaceAll("\\","/"));
foldersMap.put("folderName",tempList[i].getName().toString().replaceAll("\\","/"));
folders.add(foldersMap);
}
}
for(Map<String,Object>realfile:files){
System.out.println("文件路徑:"+realfile.get("fileUrl")+"&文件名:"+realfile.get("fileName"));
}
for(Map<String,Object>realfolder:folders){
System.out.println("文件夾路徑:"+realfolder.get("folderUrl")+"&文件夾名:"+realfolder.get("folderName"));
}
}
}
Ⅳ Java里File輸出文件目錄的問題
你好,按照你的要求,我給你修改了一上,並給出了注釋,可以直接運行
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Demo1 {
public static void main(String[] args) {
File file = new File("g:/File");
List<File> list = new ArrayList<File>();// 專用存儲文件夾
list.add(file);
while (!list.isEmpty()) {
File directory = list.get(0);// 取第一個文件夾
list.remove(0);
for (File f : directory.listFiles()) {
if (f.isDirectory()) {
list.add(f);// 是文件夾的話,就存進list
} else {
System.out.println(f);// 不是就直接列印出
}
}
}
}
}
Ⅳ 如何用java輸出txt文件
輸入無需使用位元組流,直接字元流讀取即可。
privatevoidinput(StringfileName)throwsIOException{
try(BufferedReaderreader=newBufferedReader(newFileReader(fileName))){
Stringline;
while((line=reader.readLine())!=null){
System.out.println(line);
}
}
}
同樣輸出,只要把Input換成Output;
privatevoidoutput(StringfileName,Stringcontent)throwsIOException{
try(BufferedWriterwriter=newBufferedWriter(newFileWriter(fileName))){
writer.write(content);
writer.flush();
}
}
Ⅵ Java File類 如何輸出指定目錄下所有目錄與文件以及子目錄中的文件
遞歸
importjava.io.File;
publicclassTest{
publicstaticvoidmain(String[]args){
StringrootPath="D:/test";
Filefile=newFile(rootPath);
print(0,file);
}
publicstaticvoidprint(intn,Filefile){
//輸出空格,以便更好的展示目錄結構。如果不需要可刪除
for(inti=0;i<n;i++){
System.out.print("");
}
if(file.isFile()){
System.out.print("文件>");
}else{
System.out.print("目錄>");
}
System.out.println(file.getName());
if(file.isDirectory()){
File[]files=file.listFiles();
for(FilesubFile:files){
print(n+1,subFile);
}
}
}
}
Ⅶ Java中如何實現文件的輸入和輸出
程序如下:
<span style="color:#990000;">
</span>File file1 = new File("/home/a123/a");
if (file1.exists()) {
System.out.println("存在文件夾a");
} else {
file1.mkdir(); // 文件夾的創建 創建文件夾/home/a123/a
}
File file2 = new File("/home/a123/a/test");
if (file2.exists()) {
System.out.println("存在文件夾或者文件test");
} else {
try {
file2.createNewFile(); // 文件的創建,注意與文件夾創建的區別
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 最簡單的文件讀寫方法是使用類FileWriter
* (它的父類依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object );
*/
// 下面是向文件file2裡面寫數據
try {
FileWriter fileWriter = new FileWriter(file2);
String s = new String("This is a test! \n" + "aaaa");
fileWriter.write(s);
fileWriter.close(); // 關閉數據流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
* 這樣寫數據的話,是完全更新文件test裡面的內容,即把以前的東西全部刪除,重新輸入。
* 如果不想刪除以前的數據,而是把新增加的內容增添在文件末尾處。只需要在創建FileWriter對象時候,使用另外一個構造函數即可:
* FileWriter fileWriter=new FileWriter(file2,true);
*/
// 下面是從文件file2讀東西
try {
FileReader fileReader = new FileReader(file2);
String s = null;
char ch;
try {
char[] c = new char[100];
fileReader.read(c,0,2); // 具體想得到文件裡面的什麼值(單個char?int?還是String?),
System.out.println(c);
fileReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
* 具體想得到文件裡面的什麼值(單個char?int?還是String?),需要知道不通read的不同用法:
* 1. int read() 讀取單個字元。
* 2. int read(char[] cbuf) 將字元讀入數組。 可以再將字元型數組轉化位字元串
* 3. int read(char[] cbuf,int off,int len) 將字元讀入數組的某一部分。
* 這三個方法都返回一個int值,作用是:讀取的字元數,如果已到達流的末尾,則返回 -1.
*/
}
Ⅷ Java 編寫一個程序 實現輸出一個給定目錄中的全部文件的路徑
讀取文件夾下所有文件及文件夾用.list()就可以,返迴文件名包括後綴名。
至於文件大小你試試這個:
public void File(String oldPath, String newPath) { //復制文件
//System.out.println(oldPath+"***"+newPath);
try {
//int bytesum = 0;
int byteread = 0;
InputStream inStream = new FileInputStream(oldPath); // 讀入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1024]; //每次取用的大小
while ((byteread = inStream.read(buffer)) != -1) {
//bytesum += byteread; // 位元組數 文件大小
//System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}catch (Exception e) {
System.out.println(" file error");
e.printStackTrace();
}
}
把注釋去了,裡面的bytesum就是文件大小。
Ⅸ JAVA的File問題(輸出文件夾中文件的路徑名稱)
你在輸入路徑要這樣輸入「 e:\」 你用遞歸來獲取判斷主函數里是不用在去循環的,你這段代碼可以改一下:
publicstaticvoidlist(Filefe)
{
File[]h=fe.listFiles();
for(intx=0;x<h.length;x++)
{
if(h[x].isDirectory())
list(h[x]);
else
System.out.pritln(h[x]);
}
}
publicstaticvoidmain(String[]args)
{
Filefile=newFile("e:\");
list(file);
}
如果文件數量過多建議不要使用遞歸,內存會溢出。這個要拋個IO異常。
Ⅹ java怎麼讀入文件,並逐行輸出
java讀入文件,並逐行輸出,先在D://home建立個文件夾,然後創建一個a.txt文件,然後編輯文件,文本編輯的編碼是utf-8,然後用流逐行讀取輸出,如下:
importjava.io.BufferedInputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
publicclassTestC{
publicstaticvoidmain(String[]args){
//獲取要讀取的文件
FilereadFile=newFile("D://home/a.txt");
//輸入IO流聲明
InputStreamin=null;
InputStreamReaderir=null;
BufferedReaderbr=null;
try{
//用流讀取文件
in=newBufferedInputStream(newFileInputStream(readFile));
//如果你文件已utf-8編碼的就按這個編碼來讀取,不然又中文會讀取到亂碼
ir=newInputStreamReader(in,"utf-8");
//字元輸入流中讀取文本,這樣可以一行一行讀取
br= newBufferedReader(ir);
Stringline="";
//一行一行讀取
while((line=br.readLine())!=null){
System.out.println(line);
}
}catch(Exceptione){
e.printStackTrace();
}finally{
//一定要關閉流,倒序關閉
try{
if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
}catch(Exceptione2){
}
}
}
}
結果:
helloworld
您好
123456