คำถามติดแท็ก java-io

21
วิธีรับไดเรกทอรีการทำงานปัจจุบันใน Java
ฉันต้องการเข้าถึงไดเรกทอรีการทำงานปัจจุบันของฉันโดยใช้ java รหัสของฉัน: String current = new java.io.File( "." ).getCanonicalPath(); System.out.println("Current dir:"+current); String currentDir = System.getProperty("user.dir"); System.out.println("Current dir using System:" +currentDir); เอาท์พุท: Current dir: C:\WINDOWS\system32 Current dir using System: C:\WINDOWS\system32 เอาต์พุตของฉันไม่ถูกต้องเนื่องจากไดรฟ์ C ไม่ใช่ไดเรกทอรีปัจจุบันของฉัน วิธีรับไดเรกทอรีปัจจุบัน
1028 java  java-io 

6
ใช้ปิดได้หรือใช้ AutoCloseable
ฉันอยู่ระหว่างการเรียนรู้ Java และฉันไม่พบคำอธิบายที่ดีเกี่ยวimplements Closeableกับimplements AutoCloseableอินเทอร์เฟซและอินเทอร์เฟซ เมื่อผมดำเนินการinterface Closeable, Eclipse IDE public void close() throws IOExceptionของฉันสร้างวิธีการ ฉันสามารถปิดสตรีมโดยpw.close();ไม่ใช้อินเทอร์เฟซได้ แต่ฉันไม่เข้าใจว่าฉันจะใช้close()วิธีนี้โดยใช้อินเทอร์เฟซได้อย่างไร และจุดประสงค์ของอินเทอร์เฟซนี้คืออะไร? นอกจากนี้ฉันต้องการทราบ: ฉันจะตรวจสอบได้อย่างไรว่าIOstreamถูกปิดจริง ๆ หรือไม่? ฉันใช้รหัสพื้นฐานด้านล่าง import java.io.*; public class IOtest implements AutoCloseable { public static void main(String[] args) throws IOException { File file = new File("C:\\test.txt"); PrintWriter pw = new PrintWriter(file); System.out.println("file has …
129 java  java-io 

7
สร้างไดเร็กทอรีหากไม่มีอยู่แล้วสร้างไฟล์ในไดเร็กทอรีนั้นด้วย
เงื่อนไขคือถ้ามีไดเร็กทอรีจะต้องสร้างไฟล์ในไดเร็กทอรีเฉพาะนั้นโดยไม่ต้องสร้างไดเร็กทอรีใหม่ โค้ดด้านล่างนี้สร้างเฉพาะไฟล์ที่มีไดเร็กทอรีใหม่ แต่ไม่ใช่สำหรับไดเร็กทอรีที่มีอยู่ ตัวอย่างเช่นชื่อไดเรกทอรีจะเป็น "GETDIRECTION" String PATH = "/remote/dir/server/"; String fileName = PATH.append(id).concat(getTimeStamp()).append(".txt"); String directoryName = PATH.append(this.getClassName()); File file = new File(String.valueOf(fileName)); File directory = new File(String.valueOf(directoryName)); if(!directory.exists()){ directory.mkdir(); if(!file.exists() && !checkEnoughDiskSpace()){ file.getParentFile().mkdir(); file.createNewFile(); } } FileWriter fw = new FileWriter(file.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw); bw.write(value); bw.close();
119 java  java-io 

7
การอ่านไฟล์ข้อความธรรมดา
ฉันพยายามอ่านไฟล์ข้อความธรรมดาในแอปพลิเคชัน Android ตัวอย่างของฉัน ฉันใช้รหัสที่เขียนด้านล่างเพื่ออ่านไฟล์ข้อความธรรมดา InputStream inputStream = openFileInput("test.txt"); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); คำถามของฉันคือฉันควรวาง"test.txt"ไฟล์นี้ไว้ที่ไหนในโครงการของฉัน?. ฉันได้ลองวางไฟล์ไว้ข้างใต้"res/raw"และ"asset"โฟลเดอร์แล้ว แต่ฉันได้รับexception "FileNotFound"โค้ดที่เขียนไว้ด้านบนเป็นครั้งแรก ขอบคุณสำหรับความช่วยเหลือ

16
จะแสดงรายการไฟล์ภายในไฟล์ JAR ได้อย่างไร?
ฉันมีรหัสนี้ซึ่งอ่านไฟล์ทั้งหมดจากไดเร็กทอรี File textFolder = new File("text_directory"); File [] texFiles = textFolder.listFiles( new FileFilter() { public boolean accept( File file ) { return file.getName().endsWith(".txt"); } }); มันใช้งานได้ดี มันเติมอาร์เรย์ด้วยไฟล์ทั้งหมดที่ลงท้ายด้วย ".txt" จากไดเร็กทอรี "text_directory" ฉันจะอ่านเนื้อหาของไดเร็กทอรีในลักษณะเดียวกันภายในไฟล์ JAR ได้อย่างไร สิ่งที่ฉันอยากทำจริงๆคือแสดงรายการภาพทั้งหมดในไฟล์ JAR ของฉันดังนั้นฉันจึงสามารถโหลดได้ด้วย: ImageIO.read(this.getClass().getResource("CompanyLogo.png")); (อันนี้ใช้ได้เพราะ "CompanyLogo" เป็น "ฮาร์ดโค้ด" แต่จำนวนภาพในไฟล์ JAR อาจมีความยาวตัวแปรได้ตั้งแต่ 10 ถึง 200) แก้ไข ดังนั้นฉันเดาว่าปัญหาหลักของฉันคือ: จะรู้ชื่อไฟล์ …
114 java  file  jar  java-io  getresource 


3
จะสร้าง java.io.File ใหม่ในหน่วยความจำได้อย่างไร?
ฉันจะสร้างFile(จากjava.io) ใหม่ในหน่วยความจำไม่ใช่ในฮาร์ดดิสก์ได้อย่างไร ฉันใช้ภาษา Java ฉันไม่ต้องการบันทึกไฟล์ในฮาร์ดไดรฟ์ ฉันเจอกับ API ที่ไม่ดี ( java.util.jar.JarFile) มันคาดหวังของFile file String filenameฉันไม่มีไฟล์ (เฉพาะbyte[]เนื้อหา) และสามารถสร้างไฟล์ชั่วคราวได้ แต่มันไม่ใช่วิธีแก้ปัญหาที่สวยงาม ฉันต้องการตรวจสอบความถูกต้องของโถที่เซ็นชื่อ byte[] content = getContent(); File tempFile = File.createTempFile("tmp", ".tmp"); FileOutputStream fos = new FileOutputStream(tempFile); fos.write(archiveContent); JarFile jarFile = new JarFile(tempFile); Manifest manifest = jarFile.getManifest(); ขอขอบคุณตัวอย่างวิธีการบรรลุการรับไฟล์ Manifest โดยไม่ต้องสร้างไฟล์ชั่วคราว
105 java  file  java-io 

10
java.io.Console รองรับใน Eclipse IDE
ฉันใช้ Eclipse IDE เพื่อพัฒนารวบรวมและรันโปรเจ็กต์ Java ของฉัน วันนี้ฉันพยายามใช้java.io.Consoleคลาสเพื่อจัดการเอาต์พุตและที่สำคัญกว่านั้นคืออินพุตของผู้ใช้ ปัญหาคือจะSystem.console()ส่งกลับnullเมื่อแอปพลิเคชันทำงาน "ถึง" Eclipse Eclipse รันโปรแกรมบนกระบวนการเบื้องหลังแทนที่จะเป็นกระบวนการระดับบนสุดด้วยหน้าต่างคอนโซลที่เราคุ้นเคย มีวิธีบังคับให้ Eclipse รันโปรแกรมเป็นกระบวนการระดับบนสุดหรืออย่างน้อยก็สร้าง Console ที่ JVM จะรับรู้? มิฉะนั้นฉันถูกบังคับให้ jar โปรเจ็กต์และรันบนสภาพแวดล้อมบรรทัดคำสั่งภายนอกไปยัง Eclipse
103 java  eclipse  console  java-io 

4
วิธี File.listFiles ตามลำดับตัวอักษร?
ฉันมีรหัสด้านล่าง: class ListPageXMLFiles implements FileFilter { @Override public boolean accept(File pathname) { DebugLog.i("ListPageXMLFiles", "pathname is " + pathname); String regex = ".*page_\\d{2}\\.xml"; if(pathname.getAbsolutePath().matches(regex)) { return true; } return false; } } public void loadPageTrees(String xml_dir_path) { ListPageXMLFiles filter_xml_files = new ListPageXMLFiles(); File XMLDirectory = new File(xml_dir_path); for(File _xml_file : XMLDirectory.listFiles(filter_xml_files)) …
96 java  java-io 

3
วิธีคัดลอกไฟล์ข้อมูลขนาดใหญ่ทีละบรรทัด?
ฉันมีCSVไฟล์35GB ฉันต้องการอ่านแต่ละบรรทัดและเขียนบรรทัดออกเป็น CSV ใหม่หากตรงกับเงื่อนไข try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) { try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) { br.lines().parallel() .filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world .forEach(line -> { writer.write(line + "\n"); }); } } สิ่งนี้ใช้เวลาประมาณ 7 นาที เป็นไปได้หรือไม่ที่จะเพิ่มความเร็วของกระบวนการนั้นให้มากขึ้น?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.