I had this exact problem myself. So apparently NTX files are a proprietary format and as suce the open source xBaseJ cannot use them. If you don't want to update any indexes it works otherwise you have to find another solution... Luckily, I have one that is working for me:
NOTE: This may be a bit different on a Mac, I don't know because I don't own one but you can work out any differences if you need to I am sure. It could also be different on Linux, my Linux box is dead at the moment so I can't test it I'm afraid, I have only ever needed to make this work on Windows.
(1) Collect Resources:
Go Here: http://devzone.advantagedatabase.com/dz/content.aspx?Key=20&Release=19
Download the Data Architect Utility and the ODBC driver (One of the other drivers may also work but if you want to use the JDBC driver you have to actually buy the Advantage Database server, the ODBC driver is free, your choice)
(2) Describe the Database:
Now open up the data architect utility and create a new data dictionary (file menu). Choose local server as server type, set the database to be the folder containing the DBFs. In your new dictionary right click on tables and choose "Add Existing", Choose DBF tables from the type dropdown (it hides them by default) in the open dialogue and select your dbfs. Choose Clipper as table type and press OK for your tables. Next, right click on each table and choose add existing index and give it the NTX indexes for it uses. Now if you use the data architect to edit the files it will update the indexes.
(3) Set up the ODBC driver
Go to "Data Sources (ODBC)" (In the control panel on Windows) and click the System DSN tab, then click add, choose Advantage, streamline SQL ODBC, give it a name (this name will be used in the code so will either need to be static or put in a config file / passed as an argument), tick "Data Dictionary" and browse to the .ADD file that step (2) created in the same folder as the DBFs:
Table Type = Clipper
Advantage Locking = Compatible
Available Server Types = (Choose only Local Server [ALS] unless you bought the actual advantage server)
The remaining options should be (the ones I did not mention should not make a difference.
(4) Some Example Java Code
String dbfConnectionUrl = "jdbc:odbc:SML_ODBC"; //Set the ODBC URL
Connection dbfCon = null; //A connection
PreparedStatement dbfUpd = null; //I am using a prepared statement here but jsut regular statements work just as well
dbfCon = DriverManager.getConnection(dbfConnectionUrl); //Connect to the database, NOT the DBF, the database is the folder containing all the DBFs
dbfUpd = dbfCon.prepareStatement("UPDATE DBFName SET OPENVOL = ?, SLPERVOL = 0, TFPERVOL = 0 WHERE SCAN = ? AND STORE = ?"); //Then use regular old SQL same as any other JDBC driver, note that you use the name of the DBF (.DBF not needed) as the table names.
//Setting my variables
dbfUpd.setBigDecimal(1, 10);
dbfUpd.setString(2, "0000000000001");
dbfUpd.setString(3, "02"));
dbfUpd.executeUpdate(); //Update
Clearly you could quite happily use a statement like "INSERT INTO myDBF (RUT, RS, TIPO, TDOC) VALUES ('123456', 'SomeCompany', '2', '6');"
to do your example.
So after the initial setup, its really easy :) hope this helps because it took me months to find this solution and I have yet to come across any other way of using NTX indexes in Java.