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